銀色うつ時間

思い出すたび何か胸につっかえてるだけ

vimのomni補完をためしてみる

IDEに関しては素人童貞程度の経験しかないのですが、補完機能が優秀なのはやっぱりいいなあと思うわけです。そこでvimでもomni補完というものがなかなか優秀だと聞くので試してみました(今まで補完機能すらまともに使ってなかったのかよこのクズという罵声は悦んで受けます)。vimで何か適当な関数を入力しているときに[ctr + x][ctr + o]と打ってみる。するとこんな感じで候補となる関数一覧が表示される。

f:id:arerreee:20120727000829p:image

[ctr + n]で下にカーソル移動、[ctr + p]で上にカーソル移動、決定は[ctr + y]で行える。上方に引数の型や返り値なんかが書いてあるので、「この関数どういう順番で引数がくるんだっけ」という場面でわざわざ調べに行く手間を省けて便利。IDEみたいに自動で補完候補が出るようにはできないの?という方にはこちらのプラグインをどうぞ。プラグインへの追加方法はググってね(といっても$HOME/.vimに突っ込むだけですが)

[AutoComplPop]

http://www.vim.org/scripts/script.php?script_id=1879

このプラグインはinsertモード時の入力を監視してファイル名や変数の補完やomni補完をやってくれる気の利いたものなんだけど、デフォルトだと補完対象となる文字列の長さが2文字という鬼畜な仕様なので、ちょっと変えた方がいい。補完機能が働けば働くほどエディタの動作に軽快さを欠き、逆にストレスが溜まるので。。。このプラグインに関してはこの辺が参考になりました。

http://vim-users.jp/2009/07/hack-44/


まだ様子見ではありますが、必要に応じて補完機能を呼び出す方がぼく好みではありそうなのでAutoComplPopは使わずにvimデフォルトのomni補完を使っていく所存。とはいえデフォルトの[ctr + x][ctr + o]はなかなかに鬼畜なコマンドだと思うので、以下のようにキーバインドを変更。変更はconfig_fileである.vimrcに書いておく。これで[ctr + f]で補完機能を呼び出せる。

imap <C-f> <C-x><C-o>

「<C-Space>じゃないのかよ!」という声も聞こえてきそうですが、Macユーザーの場合は[ctr + Space]はspotlightに割り当てられているのでこのように設定しました。

いつか「私のIDEvimです」と言える日が来るその日までめげない。