neocomplcacheと補完の種類についての不完全なメモ
Vimの補完を快適にするneocomplcacheプラグインを導入した - kanonjiの日記でneocomplcacheプラグインを入れてみて、Vimの補完がかなり便利になりました。元々Vimが持つ補完も、なんだか色んな種類があってよく分かってないんですが、よく分かってないままneocomplcacheが出す補完を使ってると、ずっと理解する事がなさそうなので、ちょっと調べてみました。
補足
コメントで間違いを教えてもらっています。Vimの補完を利用してるのかと思ったけど、neocomplcacheの補完はユーザ定義補完を使って、全て自前で実装していて、Vim標準の組み込み補完とは関係が無いという点が、大きく間違っていたところです。
エントリーにも追記/修正してますが、そのせいで見にくくなっちゃいました。各補完がどういう動きをするのかも、まだ良く分かってないので、その辺が分かったら改めて別エントリーに書き直したい。
neocomplcacheが補完候補を出す際[S]
の様な、補完の種類を表してそうなシンボルがついてます。シンボルは割と色々ありますが、neocomplcache.vim/README.md at master · Shougo/neocomplcache.vim · GitHubなどから何となく分かったのと、分かってないのとがあります。全部分かるまで調べようとすると、何時まで立ってもエントリー書けずに、そのうち全部忘れちゃいそうなので、分かる範囲で書いておきます。
Vimやneocomplcacheに詳しい方、助言やヒントなどコメント貰えると助かります。
分かった補完
neocomplcacheの補完時に出るシンボル | ||
[F] | ファイル補完 | Ctrl-X Ctrl-F or Ctrl-X Ctrl-K |
[O] | オムニ補完 | Ctrl-X Ctrl-O |
[V] | Vimコマンドライン補完 | Ctrl-X Ctrl-V |
[I] | インクルード補完 | Ctrl-X Ctrl-I |
コメントなどで教えてもらった補完
neocomplcacheの補完時に出るシンボル | 補完の種類 |
[B] | バッファ補完 |
[S] | シンタックス補完 |
[FI] | インクルードファイル補完 |
スニペット補完(neocomplcacheのREADMEではRegister completionとなっている) | |
[Snip] | スニペット補完で、プレースホルダの無いもの。逆に |
分からない補完
Vim本来の補完コマンド
1. 行全体 |i_CTRL-X_CTRL-L|
https://sites.google.com/site/vimdocja/insert-html#ins-completion
2. 現在のファイルのキーワード |i_CTRL-X_CTRL-N|
3. 'dictionary'のキーワード |i_CTRL-X_CTRL-K|
4. 'thesaurus'のキーワード, thesaurus-style |i_CTRL-X_CTRL-T|
5. 編集中と外部参照しているファイルのキーワード |i_CTRL-X_CTRL-I|
6. タグ |i_CTRL-X_CTRL-]|
7. ファイル名 |i_CTRL-X_CTRL-F|
8. 定義もしくはマクロ |i_CTRL-X_CTRL-D|
9. Vimのコマンドライン |i_CTRL-X_CTRL-V|
10. ユーザ定義補完 |i_CTRL-X_CTRL-U|
11. オムニ補完 |i_CTRL-X_CTRL-O|
12. スペリング補完 |i_CTRL-X_s|
13. 'complete'のキーワード |i_CTRL-N|
Vim本来の補完はCtrl-xを押してから、使いたい補完に対応したキーを、Ctrlと一緒に押して使います。分かってる[F], [O], [V]
は、このキーと一致していたので、最初はneocomplcacheのシンボルはそういう事なのかと思いました。がが、コメントにて教えて貰いましたが、neocomplcacheは補完機能を自前で実装していて、Vim標準の組み込み補完とは関係が無いそうです。[B], [S], [FI]
というシンボルに対応するキーがありません。[FI]
はそもそも2文字だし
は何か括弧が違います。
環境
vim | 7.3.146 (KaoriYa 20110330) |
neocomplcache | https://github.com/Shougo/neocomplcache/commit/d42d90d13ea54a1af3af27f0bb25f93ed7a1fa4e |