Par défaut, lorsque vous appuyez sur C-n
ou C-p
, Vim regarde à l'intérieur de diverses sources pour trouver des candidats qui rempliront le menu d'achèvement.
Ces sources peuvent être configurées avec l' 'complete'
option buffer-local .
La valeur de cette option est une liste d'indicateurs séparés par des virgules. Chaque drapeau a sa propre signification décrite dans :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 "]"
Par défaut, sa valeur est .,w,b,u,t,i
, ce qui signifie:
1. the current buffer
2. buffers in other windows
3. other loaded buffers
4. unloaded buffers
5. tags
6. included files
Si vous trouvez que l'analyse des fichiers inclus prend trop de temps, vous pouvez essayer de supprimer l' i
indicateur de l' 'cpt'
option.
Si vous vouliez le supprimer de la valeur globale, pour affecter tous les tampons par défaut, vous écririez dans votre vimrc
:
setglobal complete-=i
Si vous vouliez faire la même chose, mais uniquement pour les perl
fichiers, vous pouvez installer un autocmd dans votre vimrc
:
augroup PerlSettings
autocmd!
autocmd FileType perl setlocal complete-=i
augroup END
Ou mieux, vous pouvez créer un plugin de type de fichier, par exemple dans ~/.vim/after/ftplugin/perl.vim
, dans lequel vous écririez simplement:
setlocal complete-=i
Pour vérifier quelles sont les valeurs globales et locales actuelles de votre 'complete'
option et où elles ont été définies pour la dernière fois, vous pouvez utiliser ces commandes:
verbose setglobal complete?
verbose setlocal complete?
Ou plus court:
verb setg cpt?
verb setl cpt?
Si la seule source qui vous intéresse est le tampon actuel, alors, au lieu d'utiliser C-n
, vous pouvez utiliser C-x C-n
. Voir :h i_^x^n
pour plus d'informations.
let g:ctrlp_custom_ignore = { 'dir': '^/usr/' } let g:ctrln_custom_ignore = { 'dir': '^/usr/' }