vim
gm にカウントを受け付けるようにした。 1gm で gm と同じく現在行の画面中央の桁へ移動。 [count]gm で現在行の画面右端から1/(2^count)桁左へ移動。 --- ../src.orig/normal.c 2006-04-29 22:11:18.001000000 +0900 +++ normal.c 2006-08-25 11:32:49.4843…
http://salad.2ch.net/software/kako/989/989162369.html
1gd, 1gD はほとんど gd, gD と同じだが、マッチした場所を含むブロックが、検索開始位置よりも上で閉じているときは次を探す。 void moge() { int hoge; // gD するとここ } int hoge; // 1gD するとここ void moge() { { int hoge; // gd するとここ } int…
ねんがんの全小文字ユーザ定義コマンドをてにいれたぞ! ユーザ定義コマンドの名前を小文字で始められないのは、組み込みコマンドとの混乱を避けるため。 以下はユーザ定義コマンドを呼び出すとき、コマンド名の検索をケースインセンシティブにするハック。…
wget "http://www.vim.org/scripts/script_search_results.php?&show_me=1625&result_ptr=0" -O tmp.htmlvim.org にアップされている tips をコメントつきで取得する: http://www.vim.org/scripts/script.php?script_id=1619
けれどいつも :set vb vb_t= してるので意味がなかったり。 補完前のオリジナルの語だけ別な色で表示するようにした方がいいかな。 コマンドライン補完にはけっこう不満があるのでいじりがいがありそう。 bash などと同じようなファイル名展開を行うライブラ…
けれどいつも :set vb vb_t= してるので意味がなかったり。 補完前のオリジナルの語だけ別な色で表示するようにした方がいいかな。 コマンドライン補完にはけっこう不満があるのでいじりがいがありそう。 bash などと同じようなファイル名展開を行うライブラ…
古いバージョンのvimが置いてある。 http://ftp.vim.org/pub/vim/old/ 'gdefault'ってよっぽど初期のころに導入されたんだろうと思っていたけど、2.0と3.0の間に出てきている。g を省略できるようにするのはいいけど、オンにしているとき g をつけるとトグル…
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…
以前から、バッファ中のテキストの一部を vimscript として実行する関数が欲しかったので、実装してみようと思った。 要は、範囲指定して:so か :exe をしたいのだが、どちらがよりふさわしいだろうか?おそらく :exe なのだろうけど、スクリプト以外では :s…
fFtT でカーソル移動するとき、目的地より前に同じ文字があってそこで止まってしまうと、一瞬カーソル位置がわからなくなってしまうのをなんとかしたいと思った。 以下は ,; を使ったときに検索している文字をハイライトするハック。 既知の問題点は 特殊文…
viper にテキストオブジェクトやビジュアルモードを追加するためのパッチ。 lisp で vim を再構築したいと考える人は少ないらしい。私はその一人です。 http://www.geocities.jp/emacsjjjj/viper/
OpenFile.vbs 「ファイルを開くダイアログ」を出して、選択したファイル名を WScript.Echo。 (cscript で実行すると標準出力へ出力) Dim ComDlg, WshShell Set ComDlg = WScript.CreateObject("MSComDlg.CommonDialog") Set WshShell = WScript.CreateObje…
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 …
昨日のこれ: M でカウント指定できるようにするハック http://d.hatena.ne.jp/parasporospa/20060815/1155651810 Emacs の viper-mode ではまったく同じ機能がすでに実装されていたらしい。 以下は ^ でカウント指定できるようにするハック。 viper-mode で…
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…
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 && …
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>…
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 …
vim tips: vim は stevie を基に作られた。 stevie は ST Editor for VI Enthusiasts の略。 steve's editor の略だと書いてあるものを見たことがあるが、それは間違いのようだ。 stevie の初出は1987年。vi clone としても最初期のものらしい。 ソースコー…
http://www.k3.dion.ne.jp/~jod/viusage.html f (character-in-line-forward-search) 現在行の指定文字まで移動。Emacs の viper-modeでは現在段落内の指定文字まで移動らしい。確かに、現在行だけに制限する理由は特に考えられない。 現在行だけに制限する…
comp.editor.vi-archive より。 文の先頭の文字を大文字にする :set nowrapscan magic remap noignorecase :map K nw~Kq /[.!?*] [ ]*[a-z] 1GK :unmap K 上の方法では行頭から始まる文だけは対応できないので、以下を行う。 :g/[.!?])*[SPACETAB]*$//[A-Za-…
http://www.k3.dion.ne.jp/~jod/viusage.html
vim でヤンクすると同じテキストが Windows のクリップボードに入り、 "*p すると Windows クリップボードのテキストがプットされるハック。 ヤンクはともかく、プットは全ての場合に対応していないし、実際には レジスタ* を使っていないのでかなり問題があ…
オリジナルの vi にはレジスタ 0 は存在せず、ヤンクしたテキストは 無名レジスタにのみ保存されるらしい。 小削除用レジスタ "- もないらしい。 どうもレジスタの挙動は複雑だと思っていたら、そんな理由があったのか。 一応、以下のパッチですべてのヤンク…
(global-set-key "\C-p" 'dabbrev-expand) (global-set-key "\C-n" 'dabbrev-expand-forward)
--- ../src.orig/quickfix.c Wed May 3 16:47:42 2006 +++ quickfix.c Sun Jul 30 17:33:15 2006 @@ -2274,6 +2274,7 @@ OPT_LOCAL); set_option_value((char_u *)"bh", 0L, (char_u *)"wipe", OPT_LOCAL); set_option_value((char_u *)"diff", 0L, (char_u …
ck 上でファンクションキーを押すと、rxvt のコントロールコードを送る模様。 なので .vimrc に以下を追加。 " for Cygwin + ck set nottybuiltin set t_k1=^[[11~ set t_k2=^[[12~ set t_k3=^[[13~ set t_k4=^[[14~ set t_k5=^[[15~ set t_k6=^[[16~ set t_…
Cygwin + ck termcap に xterm-256color が入っていないので、 xterm に入っている termcap を /etc/termcap に追加する。:set termcap=xterm-256color でOK
/* insert the last typed char */ のブロックをコメントアウトしただけ。 --- ../src.orig/getchar.c Thu May 4 02:29:21 2006 +++ getchar.c Sun Jul 23 05:43:17 2006 @@ -4276,31 +4276,31 @@ /* special key code, split up */ if (c != Ctrl_RSB) { - …