デフォルトでは、C-n
またはC-p
を押すと、Vimはさまざまなソースを調べて、補完メニューを表示する候補を見つけます。
これらのソースは、バッファローカル'complete'
オプションで構成できます。
このオプションの値は、フラグのコンマ区切りリストです。各フラグには、以下で説明する独自の意味があり:h 'cpt
ます。
. scan the current buffer ('wrapscan' is ignored)
w scan buffers from other windows
b scan other loaded buffers that are in the buffer list
u scan the unloaded buffers that are in the buffer list
U scan the buffers that are not in the buffer list
k scan the files given with the 'dictionary' option
kspell use the currently active spell checking |spell|
k{dict} scan the file {dict}. Several "k" flags can be given, patterns are valid too. For example:
:set cpt=k/usr/dict/*,k~/spanish
s scan the files given with the 'thesaurus' option
s{tsr} scan the file {tsr}. Several "s" flags can be given, patterns are valid too.
i scan current and included files
d scan current and included files for defined name or macro |i_CTRL-X_CTRL-D|
] tag completion
t same as "]"
デフォルトでは、その値は.,w,b,u,t,i
であり、次のことを意味します。
1. the current buffer
2. buffers in other windows
3. other loaded buffers
4. unloaded buffers
5. tags
6. included files
含まれているファイルのスキャンに時間がかかりすぎる場合はi
、'cpt'
オプションからフラグを削除してみてください。
グローバル値からそれを削除したい場合、デフォルトですべてのバッファに影響を与えるには、次のように記述しますvimrc
。
setglobal complete-=i
perl
ファイルに対してのみ同じことをしたい場合は、次の場所にautocmdをインストールできますvimrc
。
augroup PerlSettings
autocmd!
autocmd FileType perl setlocal complete-=i
augroup END
または、ファイルタイププラグインを作成することもできます。たとえば、~/.vim/after/ftplugin/perl.vim
で、次のように記述します。
setlocal complete-=i
'complete'
オプションの現在のグローバル値とローカル値、およびそれらが最後に設定された場所を確認するには、次のコマンドを使用できます。
verbose setglobal complete?
verbose setlocal complete?
または短く:
verb setg cpt?
verb setl cpt?
関心のある唯一のソースが現在のバッファである場合、を使用する代わりにを使用C-n
できますC-x C-n
。詳細については:h i_^x^n
、を参照してください。
let g:ctrlp_custom_ignore = { 'dir': '^/usr/' } let g:ctrln_custom_ignore = { 'dir': '^/usr/' }