我正在使用perl-support插件。
#1 楼
默认情况下,当您按下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
中进行写:在perl
内的一个autocmd: br /> setglobal complete-=i
要查看
vimrc
选项的当前全局值和局部值以及它们的最后设置位置,可以使用以下命令:augroup PerlSettings
autocmd!
autocmd FileType perl setlocal complete-=i
augroup END
或更短:
setlocal complete-=i
如果唯一感兴趣的源是当前缓冲区,那么可以使用
~/.vim/after/ftplugin/perl.vim
代替'complete'
。有关更多信息,请参见C-n
。评论
有没有一种方法可以排除某些路径下文件中的关键字?
– SteveD
17年2月19日在23:28
Vim的“完成”文档提到“包含的文件”,但是没有链接到这意味着什么的更多细节。因此,请阅读:他的包含搜索。在那里,您可以看到“ include”选项定义了什么意思,并且使用“ path”进行搜索。这些功能对于进行更精细的自定义很有用,而不仅仅是打开/关闭整个功能。
– jwd
19/12/3在19:34
评论
我在.vimrc中尝试了类似的方法,但是它起作用了:让g:ctrlp_custom_ignore = {'dir':'^ / usr /'}让g:ctrln_custom_ignore = {'dir':'^ / usr /'}