2006-08-01から1ヶ月間の記事一覧

Vim old releases

vim

古いバージョンのvimが置いてある。 http://ftp.vim.org/pub/vim/old/ 'gdefault'ってよっぽど初期のころに導入されたんだろうと思っていたけど、2.0と3.0の間に出てきている。g を省略できるようにするのはいいけど、オンにしているとき g をつけるとトグル…

bufdo, windo, s の実行後にカーソル位置をもとに戻すハック

vim

bufdo, windo の実行後にカーソル位置を元に戻す --- ../src.orig/ex_cmds2.c Mon Apr 17 19:19:07 2006 +++ ex_cmds2.c Mon Aug 21 21:35:59 2006 @@ -2214,6 +2222,10 @@ #endif char_u *p_shm_save; + win_T* curwin_save = curwin; + buf_T* curbuf_save…

rangesource ハック

vim

以前から、バッファ中のテキストの一部を vimscript として実行する関数が欲しかったので、実装してみようと思った。 要は、範囲指定して:so か :exe をしたいのだが、どちらがよりふさわしいだろうか?おそらく :exe なのだろうけど、スクリプト以外では :s…

hilight ,; ハック

vim

fFtT でカーソル移動するとき、目的地より前に同じ文字があってそこで止まってしまうと、一瞬カーソル位置がわからなくなってしまうのをなんとかしたいと思った。 以下は ,; を使ったときに検索している文字をハイライトするハック。 既知の問題点は 特殊文…

明日

バッチファイルの最初で del log。

Viper Enhanced

viper にテキストオブジェクトやビジュアルモードを追加するためのパッチ。 lisp で vim を再構築したいと考える人は少ないらしい。私はその一人です。 http://www.geocities.jp/emacsjjjj/viper/

GNU screen メモ

screenrc を再読み込み を押してから :source $HOME/.screenrc screen から簡単操作で X のクリップボードにコピー http://d.hatena.ne.jp/emacsjjj/20050629/p1

X Window System のクリップボード

X のコピー&ペーストのメカニズムは2種類ある。 1.カットバッファ STRING エンコーディングの文字列のみ格納可能。EUC-JP 日本語は使えないっぽい。0番から7番まであるが、通常使われるのは0番のみ。データは X サーバが保持し、アプリが終了しても失われな…

I love CUI

I love CUI http://www.mnet.ne.jp/~tnomura/ メモ帳を作ろう 簡単操作でメモ帳の作成、閲覧、検索のできるスクリプトです。 電話帳を作ろう CUIで操作できる電話帳です。超簡単スクリプトです。 検索用スクリプト lgrep lynxを利用した grep の拡張版です。…

ヒュベニの公式

経度と緯度から2点間の距離を求める http://www02.so-net.ne.jp/~khayashi/hubeny.bas

Cygwin 上の vim で :browse

vim

OpenFile.vbs 「ファイルを開くダイアログ」を出して、選択したファイル名を WScript.Echo。 (cscript で実行すると標準出力へ出力) Dim ComDlg, WshShell Set ComDlg = WScript.CreateObject("MSComDlg.CommonDialog") Set WshShell = WScript.CreateObje…

ファイルをドロップしたときのカレントディレクトリ

吉岡 照雄氏の CurrentDirectoryOnDrop.VBS より。 「送る」(SendTo)やファイルをドロップしたときの作業フォルダや、 「お気に入り」や「リンク」から起動したときの作業フォルダは、 困ったことに「不定」です。きっと「仕様」なのでしょう。 しかし、ユー…

吉岡 照雄氏の VBScript 等

マイクロソフトMVPアワード(開発/スクリプト分野)受賞だけあってすばらしいスクリプトの数々。 http://www.vector.co.jp/vpack/browse/person/an010222.html

cman : man を読みながらコマンドを組み立てる

man を見ながらコマンドを組み立てたくなることがあるので、そのようなときのためのシェル関数を作ってみた。 function cman() { tmp=~/.cman-cache man -P 'col -b' "$@" | sed -e 's/^/# /' >| $tmp vi $tmp . $tmp }本当はいつも通り man の結果を less …

diff フロントエンド

gtkdiff http://home.catv.ne.jp/pp/ginoue/software/gtkdiff/index.html kdiff3 http://kdiff3.sourceforge.net/ colordiff http://colordiff.sourceforge.net/

find フロントエンド

GUI の find gnome-find http://gnome-find.sourceforge.net/ kfind http://www.kubuntu.org/docs/kquickguide/C/ch03s08.html

Copit

コピット!(Copit!) - ウィンドウ上のコピーできない文字列をコピー http://www.vector.co.jp/soft/win95/util/se178998.html CopitX - メニュー、リストビュー、ツリービュー等のデータを指定のテキストファイルに生成 http://www.vector.co.jp/soft/win95/u…

関数の個数

vim

vim のソース中に関数が何個あるか数えてみたら2593個だった。count-functions-in-tags (exuberant ctags の tags を利用) #!/usr/local/bin/ruby # usage: $0 < tags count = 0 while gets a = $_.split('"') a = a[-1].split("\t") #puts a[1] count += 1 …

^ でカウント指定できるようにするハック。

vim

昨日のこれ: M でカウント指定できるようにするハック http://d.hatena.ne.jp/parasporospa/20060815/1155651810 Emacs の viper-mode ではまったく同じ機能がすでに実装されていたらしい。 以下は ^ でカウント指定できるようにするハック。 viper-mode で…

v_I, v_A ハック

vim

v, V でビジュアルモードを開始したとき、I, A で選択行の行頭・行末にテキストを追加するようにするハック。 --- ../src.orig/ops.c 2006-06-23 04:30:39.001000000 +0900 +++ ops.c 2006-08-16 18:13:49.921875000 +0900 @@ -2357,6 +2357,25 @@ curwin->w…

VB : 定数の名称を取得する

VB初心者質問スレ Part6 より 0という数字から、それに対応する定数の名称の文字列 (例えばvbDefaultトカ)を取得する事はできますか? >>845 無理じゃないよ。ほれサンプル。最善のコードじゃないかもしれないけど。 「TypeLib Information」を参照設定してな …

M でカウント指定できるようにするハック

vim

H, L はカウント指定できるのに、M だけできないのはかわいそうなので直した。 画面中央行からcount-1だけ下の行へ移動。 --- ../src.orig/normal.c Sat Apr 29 22:11:18 2006 +++ normal.c Tue Aug 15 23:14:05 2006 @@ -5634,6 +5634,7 @@ } if (n > 0 && …

vi ftp archive

vim

ftp://ftp.cc.monash.edu.au/pub/vi/ かなり面白いものがある。 macros/commentC C のコメントの中で改行したとき、次行の先頭に'*'をつける。vim の :set formatoptions+=r に相当。 map! <cr> <c-v><esc>Yp:s/[^\* ]/ /g<esc>A <esc>:s/ *$//g<esc>A macros/markring マークリング、いわ</esc></esc></esc></esc></c-v></cr>…

配列操作の比較表:VBScript, VimScript

http://0xcc.net/blog/archives/000043.html 作ってみた。 Ruby(Array) VBScript(Array) VimScript(list) a = [1, 2, 3] a = Array(1, 2, 3) let a = [1,2,3] a.length UBound(a) - LBound(a) + 1 len(a) a.empty? UBound(a) = -1 empty(a) a.push(x) ReDim …

stevie

vim

vim tips: vim は stevie を基に作られた。 stevie は ST Editor for VI Enthusiasts の略。 steve's editor の略だと書いてあるものを見たことがあるが、それは間違いのようだ。 stevie の初出は1987年。vi clone としても最初期のものらしい。 ソースコー…

fFtT で現在行を飛び出て探しに行くハック

vim

http://www.k3.dion.ne.jp/~jod/viusage.html f (character-in-line-forward-search) 現在行の指定文字まで移動。Emacs の viper-modeでは現在段落内の指定文字まで移動らしい。確かに、現在行だけに制限する理由は特に考えられない。 現在行だけに制限する…

Silly vi tricks, and silly macros

http://www.faqs.org/faqs/editor-faq/vi/part2/ より。 ちょっとでも実用的かつ面白いのはこれくらいかな。 fmt を使わずに現在のパラグラフを80文字で折り返す。 map K {wma}b:'a,.j<ctrl-v><enter>:s/\(.........................................................\)/\1<ctrl-v><ctrl-v><ctrl-v><enter>/g<ctrl-v><enter></enter></ctrl-v></enter></ctrl-v></ctrl-v></ctrl-v></enter></ctrl-v>…

Perl正規表現雑技

http://www.din.or.jp/~ohzaki/regex.htm

xterm でダブルクリックしたときの選択範囲をカスタマイズする

xterm ではダブルクリックで単語選択、右クリックで選択範囲拡張ができる。 単語の区切りは .Xdefaults(または .Xresources) に charClass リソースを書くことでカスタマイズできる。 ! !%-./&@ を数字・アルファベットと同じ文字クラスにする XTerm*charC…

文の先頭の文字を大文字にする

vim

comp.editor.vi-archive より。 文の先頭の文字を大文字にする :set nowrapscan magic remap noignorecase :map K nw~Kq /[.!?*] [ ]*[a-z] 1GK :unmap K 上の方法では行頭から始まる文だけは対応できないので、以下を行う。 :g/[.!?])*[SPACETAB]*$//[A-Za-…