Por padrão, quando você pressiona C-n
ou C-p
, o Vim procura dentro de várias fontes para encontrar candidatos que preencherão o menu de conclusão.
Essas fontes podem ser configuradas com a 'complete'
opção buffer-local .
O valor dessa opção é uma lista de sinalizadores separados por vírgula. Cada bandeira tem seu próprio significado descrito em :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 "]"
Por padrão, seu valor é .,w,b,u,t,i
, o que significa:
1. the current buffer
2. buffers in other windows
3. other loaded buffers
4. unloaded buffers
5. tags
6. included files
Se você achar que a verificação dos arquivos incluídos leva muito tempo, tente remover o i
sinalizador da 'cpt'
opção.
Se você deseja removê-lo do valor global, para afetar todos os buffers por padrão, escreva em vimrc
:
setglobal complete-=i
Se você quiser fazer a mesma coisa, mas apenas para perl
arquivos, poderá instalar um autocmd dentro do seu vimrc
:
augroup PerlSettings
autocmd!
autocmd FileType perl setlocal complete-=i
augroup END
Ou melhor, você pode criar um plug-in de tipo de arquivo, por exemplo ~/.vim/after/ftplugin/perl.vim
, no qual você simplesmente escreveria:
setlocal complete-=i
Para verificar quais são os valores globais e locais atuais de sua 'complete'
opção e onde eles foram definidos pela última vez, você pode usar estes comandos:
verbose setglobal complete?
verbose setlocal complete?
Ou mais curto:
verb setg cpt?
verb setl cpt?
Se a única fonte na qual você está interessado é o buffer atual, então, em vez de usar C-n
, você pode usá-lo C-x C-n
. Veja :h i_^x^n
para mais informações.
let g:ctrlp_custom_ignore = { 'dir': '^/usr/' } let g:ctrln_custom_ignore = { 'dir': '^/usr/' }