我希望 NERDTree 和 CtrlP 都忽略(不显示也不索引)顶级供应商目录。
但是,我确实希望这两个插件(以及将来的任何其他插件)都考虑供应商目录下而不是项目顶层的文件(例如 app/assets/javascripts/vendor)。
我的 wildignore 设置如下:
wildignore+=*.o,*.obj,.git,*.rbc,*.class,.svn,coverage/*,vendor
这使得供应商目录无论在哪里都被忽略了。
你能推荐一个解决方案吗?
谢谢你。
我希望 NERDTree 和 CtrlP 都忽略(不显示也不索引)顶级供应商目录。
但是,我确实希望这两个插件(以及将来的任何其他插件)都考虑供应商目录下而不是项目顶层的文件(例如 app/assets/javascripts/vendor)。
我的 wildignore 设置如下:
wildignore+=*.o,*.obj,.git,*.rbc,*.class,.svn,coverage/*,vendor
这使得供应商目录无论在哪里都被忽略了。
你能推荐一个解决方案吗?
谢谢你。
将此添加到您的 .vimrc 中:
let g:NERDTreeRespectWildIgnore = 1
对于 NERDTree,您需要将其添加到g:NERDTreeIgnore
:
:let g:NERDTreeIgnore=['\~$', 'vendor']
由于我不喜欢在'wildignore'
NERDTree 和 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