書いたのは10何度目かになる、Tabでなんとなく補完してくれるやつをTabcomという名前でプラグインにした。書いてはVimのビルトイン補完群に戻り、書いてはAutocomplpopに戻りするので、そろそろプラグイン化しておいてすぐ戻れるようにしたかった。
おおまかに以下のような状態それぞれに対応してアクションが変わる。上の方が優先度高い。
状態 | アクション |
---|---|
ポップアップメニューが出てる | 次の項目を選択 |
カーソル位置まで空白のみ | インデント |
/ か\ で終わってる |
ファイル名補完 |
omnifunc が設定されてる |
オムニ補完 |
filetype がvim |
Vimコマンド補完 |
その他 | 汎用補完 |
設定はTab (Shift+Tab)の代わりに他のキー(例えばCtrl+(Shift+)Spaceであるとか)を使えるようにするものがある。それと、completeopt
オプションにlongest
があるケースの挙動に合わせて、項目を選択するだけになっているモードを無効にするもの。
僕にとってビルトイン補完の使いづらいところはオムニ補完を一番良く使うのに、キーが押しづらい感じなことと間違えた時にキャンセルするCtrl+Eも押しづらいこと。こういうTabキーでなんとなく補完してくれるやつで間違いを減らし、オムニ補完をメインに据えて、フォローとして次によく使う汎用補完のCtrl+N (P)を使うのが一番合ってる感じ。
でも、複数の補完候補を混ぜて補完メニューを出してくれるプラグインは偉大だなとも思ってる。特にSassとかオムニ補完を他のファイルタイプのものから流用してて、変数名などが補完できないファイルタイプの場合に強く思う。で、たまに戻る。けど、ごっついなぁ……と元に戻る。この無限ループ。