我正在使用https://github.com/MarcWeber/vim-addon-local-vimrc来设置项目特定的vim设置。
现在我想使用NERDTreeVimIgnore来忽略只在子目录src中的javascript文件。
我试过了:
let NERDTreeIgnore = ['^src*\.js$']
但没有成功。
let NERDTreeIgnore = ['\.js$']
忽略所有js文件,但我只需要在src及其递归子目录中忽略它们。
任何人都可以给我一个提示吗?
答案 0 :(得分:0)
不幸的是,NERDTreeIgnore
选项似乎只查看最后一个路径组件(文件的基本名称)。这意味着您将无法过滤掉这样的特定文件。
我能想到的唯一方法是使用NERDTreeAddPathFilter()
函数:https://github.com/scrooloose/nerdtree/blob/15445be5fb2559829ac7a1f05af5d713586e8ec9/doc/NERD_tree.txt#L1175
您可以在nerdtree_plugin
目录中创建一个vim文件,例如~/.vim/nerdtree_plugin/path_filters.vim
。它将包含类似文档中的示例:
call NERDTreeAddPathFilter('MyFilter')
function! MyFilter(params)
" params is a dict containing keys: 'nerdtree' and 'path' which are
" g:NERDTree and g:NERDTreePath objects
" return 1 to ignore params['path'] or 0 otherwise
" You could do something like this, then:
let filename = fnamemodify(a:params.path.str(), ':p')
return filename =~ 'src/myproject/.*\.js'
endfunction
如果遇到麻烦,您可能需要在有关编写函数的文档中阅读一些内容。