vim補完 Tag Completion, Omni Completion

まずTag Completion。

ctags + vim
http://labs.unoh.net/2006/08/vi_ctags.html

あらかじめソースコード群で使われている各種定義を調べてインデックス(tagsファイル)を作っておき、そこから補完。

リンク先の説明はPHPだけど、どうもほとんどの言語で使えるらしい。(当然C++RubyはOK)


tagsは$ ctags -Rで作成できる。
vimではCtrl-x-]で補完。


あと、tagsを使って定義部分へジャンプできる。
定義を調べたい関数などの上にカーソルを置いて、Ctrl-]でジャンプ。
定義が違うファイルにある場合は別のバッファに開く。Ctrl-tで元のファイルに戻れる。:bnでもOK



続いてOmni Completion。
そのままだと使い方が良く分からないけど、どうもctagsと連携できるらしい。

まずctags -Rでtagsを作成しておく。
そしてvimで、Ctrl-x-oで補完。

オブジェクトのメソッドなどを賢く補完してくれる。

すごいのは、補完選択時、画面上部に引数の型が表示されること。(Rubyのような動的型付け言語では型は表示されない)

履歴補完と同時に使えないかな。



補完候補を選択するリストは色が見にくいので、↓をvimrcに書いてみた。

hi Pmenu ctermbg=4
hi PmenuSel ctermbg=1
hi PMenuSbar ctermbg=4