オムニ補完(Omni Completion)はVimで使用できる補完の一種で、編集中のコードの文脈を判断して、適切な補完候補を返してくれます。
IDEによくある高度な自動補完をイメージしてもらえればわかりやすいと思います。あれを手動で行う(特定のキーバインドを入力して変換候補を表示する)といった感じでしょうか。
設定する
オムニ補完は基本的にデフォルトでは使用できません(ただし一部の言語では設定しなくても使えます)。使用するにはomnifunc
オプションを設定します。
set omnifunc=syntaxcomplete#Complete
これで設定は終わり。
使ってみる
オムニ補完は挿入モード内で<C-x><C-o>
を入力することで使用できます。
たとえばファイルタイプがvim
のファイルの場合、
scripte
と入力し、<C-x><C-o>
を入力すると
scriptencoding
と展開されます。
今回は変換候補が一つでしたので自動で挿入されましたが、変換候補が複数ある場合はその中からどれかを選ぶことになります。
他にも、インスタンスのメソッドなどいろいろと補完できます。
deoplete.nvim
との連帯
Shougoさんのプラグインdeoplete.nvim
と連帯し、自動で補完候補を出すことも可能です。
私は現在deopete.nvim
を使っていないので検証できませんが、確かomnifunc
を設定するだけで自動で表示されたと思います。
その他
オムニ補完はとても便利なのですが、やはりLanguage Client ProtocolやPythonのjedi-vim
の精度には劣るといった感じです。補完にこだわりがある場合にオムニ補完は適していないかもしれません。