我希望NERDTree和CtrlP都忽略(不显示而不是索引)顶级供应商目录。
但是,我确实希望这些插件(以及将来的任何其他插件)都考虑不在项目顶层的供应商目录下的文件(例如app / assets / javascripts / vendor)。 / p>
我的野生动物设置如下:
wildignore+=*.o,*.obj,.git,*.rbc,*.class,.svn,coverage/*,vendor
这使得供应商目录无论在哪里都会被忽略。
你能推荐一个解决方案吗?
谢谢。
答案 0 :(得分:2)
对于NERDTree,您需要将其添加到g:NERDTreeIgnore
:
:let g:NERDTreeIgnore=['\~$', 'vendor']
由于我不想在'wildignore'
和NERDTree中维护排除列表,我使用以下scriptlet自动设置前者:
" Use the 'wildignore' and 'suffixes' settings for filtering out files.
function! s:FileGlobToRegexp( glob )
" The matching is done against the sole file / directory name.
if a:glob =~# '^\*\.'
return '\.' . a:glob[2:] . '$'
else
return '^' . a:glob . '$'
endif
endfunction
function! s:SuffixToRegexp( suffix )
return escape(v:val, '.~') . "$"
endfunction
let g:NERDTreeIgnore =
\ map(split(&wildignore, ','), 's:FileGlobToRegexp(v:val)') +
\ map(split(&suffixes, ','), 's:SuffixToRegexp(v:val)')
delfunction s:SuffixToRegexp
delfunction s:FileGlobToRegexp
修改强>
但是,全局会过滤掉vendor
目录。目前不能仅为顶层执行此操作,因为NERDTree仅对文件的基本名称执行过滤器比较:
self.getLastPathComponent(0) =~# pat
答案 1 :(得分:1)
将此添加到您的.vimrc:
let g:NERDTreeRespectWildIgnore = 1