我在查找Vim中wildignore
设置的语法时遇到了很多麻烦。
假设我想要我的文件查找器插件(我使用Ctrlp,它使用wildignore
)不搜索隐藏的文件和文件夹,即带有.
前缀的文件和文件夹
我将如何做到这一点?
答案 0 :(得分:8)
正如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',
\ }
答案 1 :(得分:6)
特别关注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+=.*
答案 2 :(得分:4)
请参阅:help file-pattern
。基本上,如果您只想排除任何以点开头的内容,您可以执行.*
。
答案 3 :(得分:1)
因为标题与最佳答案不对应,所以她是我的核心,而不是ctrlp而是toignignore。基于 https://stackoverflow.com/a/579886/1170940
Vim将忽略选项wildignore中指定的文件模式,因此您可以这样设置它们:
:set wildignore=*.o,*~,*.pyc
例如,我的野生动物就像这样
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