Tags: #vim #filter #quickfix #locationlist
:packadd cfilter
:Cfilter! /xyz/
The ! is like grep -v.
So :Cfilter /xyz/ would filter the results so only those items that have xyz will be kept. If you add the ! then the results will be everything except xyz.
NOTE: if you’re using something like Ack/Ag then you can use that tools own filtering flags, but if that’s not appropriate for whatever reason, then this solution is very useful.
A ‘pattern’ is basic regex syntax by default (you can get \v magic/advanced variation too).
So by default it means, for example, a regex quantifier like + will need to be escaped \+.
So if you use the basic syntax you’ll find * is easier to work with as it doesn’t need escaping:
:Cfilter! '.*/common/.*'
Compared to:
:Cfilter! '.\+/common/.\+'
But \v helps for more advanced regex syntax:
:Cfilter! '\v.+/common/.+'
NOTE: I’ve used
'single quotes as delimeters as I was filtering content that looked like unix file paths.
Refer to :help cfilter-plugin for more information.