Vim 如何使用';wildignore';在维姆?

Vim 如何使用';wildignore';在维姆?,vim,Vim,我在计算Vim中的wildignore设置的语法时遇到了很多麻烦 假设我希望我的文件查找器插件(我使用,它使用wildignore)不搜索隐藏的文件和文件夹,即前缀为的文件和文件夹 我该怎么做呢?请参见:帮助文件模式。基本上,如果您只想排除任何以点开头的内容,您可以对ctrlp.vim和wildignore执行:help ctrlp options并阅读一些内容,您会发现: 注#1:默认情况下,wildignore和g:ctrlp\u custom\u ignore 当使用globpath()扫

我在计算Vim中的
wildignore
设置的语法时遇到了很多麻烦

假设我希望我的文件查找器插件(我使用,它使用
wildignore
)不搜索隐藏的文件和文件夹,即前缀为
的文件和文件夹


我该怎么做呢?

请参见
:帮助文件模式
。基本上,如果您只想排除任何以点开头的内容,您可以对
ctrlp.vim
wildignore
执行
:help ctrlp options
并阅读一些内容,您会发现:

注#1:默认情况下,wildignoreg:ctrlp\u custom\u ignore 当使用globpath()扫描文件时应用,因此这些选项 当使用g:ctrlp\u user\u命令定义的命令被禁用时,请勿应用该命令 正在使用中

因此,您可能需要
取消设置g:ctrlp\u user\u命令(可能设置为默认命令)以实际使用
wildignore
。例如,在
~/.vimrc
中添加:

if exists("g:ctrl_user_command")
    unlet g:ctrlp_user_command
endif
set wildignore+=.*

正如BenC所指出的,如果您使用外部搜索工具,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',
    \ }

因为标题与最佳答案不符,所以她是我的,而不是ctrlp,而是Wildlp。基于

Vim将忽略选项wildignore中指定的文件模式,因此您可以这样设置它们:

:set wildignore=*.o,*~,*.pyc
例如,我的wildignore看起来就是这样

 set wildignore+=*/node_modules/*,_site,*/__pycache__/,*/venv/*,*/target/*,*/.vim$,\~$,*/.log,*/.aux,*/.cls,*/.aux,*/.bbl,*/.blg,*/.fls,*/.fdb*/,*/.toc,*/.out,*/.glo,*/.log,*/.ist,*/.fdb_latexmk

我在ctrlp和NERDTree上都使用了它,不过我还是想出来了,谢谢你提供的信息。键入set:wildignore+=/home/USERNAME/*@Fawkes5:您也可以尝试
:set wildignore+=.*
。我曾尝试添加wildignore、custom\u ignore,但未设置ctrl\u user\u命令。最终找到了@BenC在类似问题上提供的另一个答案。Ctrlp缓存结果,因此,一旦您找到要忽略的文件,无论您在wildignore/custom ignore中放置了什么,它们仍将显示,直到清除Ctrlp缓存。如何区分多个文件模式?@nn0p你是什么意思?扩展是分开的。是否可以在每个目录的基础上执行此操作?