Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Vim: Is it possible to have a filtered view of a file?

Tags:

vim

In a given text file, I would like to work on a "filtered view" (hiding lines with a pattern), but still to be able to edit visible lines : the filtering would only affect the visibility of some lines, and as soon as I would reset the filter, the hidden lines would appear again.

The feature I describe could be compared to the & key in the less command (except, of course, that less can't edit the file's content) :

  • &some_pattern <RETURN> starts a new filter,
  • & <RETURN> reset the filter.

Does such a feature exist in vim, natively or as a plugin?

like image 915
yolenoyer Avatar asked Nov 16 '25 10:11

yolenoyer


1 Answers

This usually is done with folding; you can easily define a 'foldexpr' that filters lines based on a regular expression match; see Folding with Regular Expression for implementations.

However, a single fold line will remain for each condensed block. To do away with those, I can only think of the NrrwRgn plugin, which transfers selected lines into a separate scratch buffer. It's usually only for a single block, but :help NR-multi-example suggests this works on ranges, too:

For example before editing your config file, you decide to strip all comments for making big changes but when you write your changes back, these comments will stay in your file. You would do it like this: >

 :v/^#/NRP
 :NRMulti
like image 83
Ingo Karkat Avatar answered Nov 18 '25 19:11

Ingo Karkat



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!