Using NERDTree plugin, I want to view only *.txt files. There is a NERDTreeIgnore
variable, but I want something like NERDTreeWhitelistFilter
.
Is there a way to whitelist what I see?
Using NERDTree plugin, I want to view only *.txt files. There is a NERDTreeIgnore
variable, but I want something like NERDTreeWhitelistFilter
.
Is there a way to whitelist what I see?
This is what you want:
:let NERDTreeIgnore += ['\(\.txt\)\@<!$[[file]]']
:help 'NERDTreeIgnore'
in you vim. –
Tulipwood [file]
defined. Maybe My version 4.2.0 not contain this keyword? –
Deimos I've been playing around with this — it's an interesting problem. Maybe you could try out this regular expression for ignoring files?
Edit: talked with my co-worker. Here's the correct regular expression (my original one matched "txt" at the beginning of a file name, too).
^(?!.*\.txt$).*
:let NERDTreeIgnore=^(?!.*\.txt$).*
and it gave the following error: E15: Invalid expression: ^(?!.*\.txt$).*
–
Junina ^\(.*\.txt$\)\@!.*
and n
will proceed through every single line except txt files -- and that's exactly what I want. but ... when I type :let NERDTreeIgnore=^\(.*\.txt$\)\@!.*
it gives me the same error as previous comment. So we're getting closer. We now have the regex in "vim-speak", but I can't seem to set NERDTreeIgnore to it (or anything else, so I'm doing something wrong). –
Junina :let NERDTreeIgnore=['^\(.*\.txt$\)\@!.*']
(and I checked three times to make sure I typed it right), but after refreshing, it shows nothing. But manually searching that regex worked (see last post). I typed :let NERDTreeIgnore=['resx']
and it properly ignored all .resx files too :(. This is way too hard. –
Junina This is what you want:
:let NERDTreeIgnore += ['\(\.txt\)\@<!$[[file]]']
$[[file]]
mean, Where can I get the information about it? Thank you for your response. –
Deimos :help 'NERDTreeIgnore'
in you vim. –
Tulipwood [file]
defined. Maybe My version 4.2.0 not contain this keyword? –
Deimos based on @kev great answer you can also make a toggle function.
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
© 2022 - 2024 — McMap. All rights reserved.
$[[file]]
mean, Where can I get the information about it? Thank you for your response. – Deimos