我在查找wildignoreVim中的设置语法时遇到了很多麻烦.
假设我想要我的文件查找器插件(我使用Ctrll,它使用wildignore)不搜索隐藏的文件和文件夹,即带有前缀的文件和文件夹..
我该怎么做呢?
关于ctrlp.vim并且wildignore具体来说,如果您输入:help ctrlp-options并读取一下,您会发现:
注意#1:默认情况下,wildignore和g:ctrlp_custom_ignore仅在使用globpath()扫描文件时应用,因此当使用g:ctrlp_user_command定义的命令时,这些选项不适用.
因此,您可能需要unlet g:ctrlp_user_command(可能设置为默认命令)才能实际使用wildignore.例如,在你的~/.vimrc,添加:
if exists("g:ctrl_user_command")
unlet g:ctrlp_user_command
endif
set wildignore+=.*
Run Code Online (Sandbox Code Playgroud)
正如BenC指出的那样,如果您将CtrlP与外部搜索工具一起使用,Wildignore可能不是忽略文件的最佳方式.相反,您可以使用CtrlP的"custom_ignore"指令,如其文档中所述:
let g:ctrlp_custom_ignore = '\v[\/]\.(git|hg|svn)$'
let g:ctrlp_custom_ignore = {
\ 'dir': '\v[\/]\.(git|hg|svn)$',
\ 'file': '\v\.(exe|so|dll)$',
\ 'link': 'SOME_BAD_SYMBOLIC_LINKS',
\ }
Run Code Online (Sandbox Code Playgroud)
看:help file-pattern。基本上,如果您只想排除任何以点开头的内容,您可以这样做.*。
因为标题与最佳答案不符,所以她是我的,她的回答不是对ctrlp而是对wildignore。基于 /sf/answers/40592051/
Vim会忽略选项wildignore中指定的文件模式,因此可以这样设置它们:
:set wildignore=*.o,*~,*.pyc
Run Code Online (Sandbox Code Playgroud)
例如,我的狂野表情看起来像这样
set wildignore+=*/node_modules/*,_site,*/__pycache__/,*/venv/*,*/target/*,*/.vim$,\~$,*/.log,*/.aux,*/.cls,*/.aux,*/.bbl,*/.blg,*/.fls,*/.fdb*/,*/.toc,*/.out,*/.glo,*/.log,*/.ist,*/.fdb_latexmk
Run Code Online (Sandbox Code Playgroud)
我将它用于ctrlp和NERDTree