使用 NERDTree 插件,我想只查看 *.txt 文件。虽然有一个
有办法让我只看到白名单上的文件吗?
NERDTreeIgnore
变量,但我想要类似于 NERDTreeWhitelistFilter
的东西。有办法让我只看到白名单上的文件吗?
NERDTreeIgnore
变量,但我想要类似于 NERDTreeWhitelistFilter
的东西。我一直在研究这个问题,它很有趣。也许你可以尝试使用这个正则表达式来忽略文件?
编辑:我和我的同事交流过了。这是正确的正则表达式(我的原始表达式也会匹配文件名开头的“txt”)。
^(?!.*\.txt$).*
:let NERDTreeIgnore += ['\(\.txt\)\@<!$[[file]]']
$[[file]]
是什么意思?我在哪里可以获取相关信息?谢谢您的回复。 - Aylwyn Lake:help 'NERDTreeIgnore'
。 - kev[file]
。也许我的4.2.0版本不包含这个关键字? - Aylwyn Lake基于@kev的优秀回答,你也可以制作一个切换函数。
function NERDRefreshIfOpened()
if g:NERDTree.IsOpen()
:NERDTreeRefreshRoot
endif
endfunction
function NERDTxtOnlyToggle()
let regex='\(\.txt\)\@<!$[[file]]'
if index(g:NERDTreeIgnore, regex) >= 0
call filter(g:NERDTreeIgnore, {idx, val -> val != regex})
call NERDRefreshIfOpened()
else
let g:NERDTreeIgnore += [regex]
call NERDRefreshIfOpened()
endif
endfunction
:let NERDTreeIgnore=^(?!.*\.txt$).*
,但是它给出了以下错误:E15: Invalid expression: ^(?!.*\.txt$).*
。 - Alexander Bird^\(.*\.txt$\)\@!.*
,然后按下n
键将跳过每一行——除了 txt 文件,这正是我想要的。但是,当我键入:let NERDTreeIgnore=^\(.*\.txt$\)\@!.*
时,它会给出与前面评论相同的错误。所以我们已经用“vim语言”编写了正则表达式,但似乎无法将NERDTreeIgnore设置为该表达式(或其他任何内容),所以我肯定做错了些什么。 - Alexander Bird:let NERDTreeIgnore=['^\(.*\.txt$\)\@!.*']
(并检查了三次以确保我输入正确),但刷新后什么也没有显示。但手动搜索该正则表达式是有效的(请参见上一篇帖子)。我输入了:let NERDTreeIgnore=['resx']
,它正确地忽略了所有 .resx 文件 :(. 这太难了。 - Alexander Bird