Vim - 補完時に表示されるプレビューウィンドウを消す
普段neocomplcacheを使っています。
最近Pythonを書いていて知ったのですが、補完時にプレビューウィンドウが開きます。
こんな状態から
.
を入力して補完が始まるとこうなります。
このプレビューウィンドウ。
これが非常に邪魔臭くて消したかったので調べました。
completeoptとomnifunc
まずneocomplcacheは関係ありませんでした。
これはVim標準の機能で、:help completeopt
に次のように書かれています。
入力モードでの補完|ins-completion|についてのオプションのコンマ区切りの リスト。サポートされている値は次の通り:
menu ポップアップメニューで補完候補を表示する。ポップアップメニ ューは、候補が2個以上あり、十分な数の色が使用できるときだ け表示される。|ins-completion-menu|を参照。 menuone 候補が1つしかないときもポップアップメニューを使う。候補に ついて付加的な情報があるときに便利である。例えば、それがど のファイルに含まれているかなど。 longest 候補の文字列の最長の共通部分だけを挿入する。メニューが表示 されているならばCTRL-Lでさらに文字を挿入することができる。 大文字・小文字が同一視されるかどうかは補完の種類による。バッ ファのテキストについてはオプション'ignorecase'が適用される。 preview 現在選択されている候補についての付加的な情報をプレビューウ ィンドウに表示する。"menu"または"menuone"と組み合わせたと きのみ有効。
現在の設定を確認してみます。
:set completeopt
preview,menuone
previewが入っています。
今回のケースでいえば omnifunc
が影響していたようで、ネオコンを無効化して同じようなコードにて <C-x><C-o>
で再現しました。
ということで.vimrcに以下を追加して解決。
set completeopt=menuone
快適。
おまけ:ネオコンにて「プレビューを自動で閉じない」設定
標準ではこのプレビューは表示されると、補完確定後もウィンドウがそのまま残ります。
ネオコンを使っていると、確定後は自動でプレビューウィンドウが閉じられます。
ネオコンの設定により自動で閉じないようにすることもできます。
" vimrcに追加 let g:neocomplcache_enable_auto_close_preview = 0