删除除与某个模式匹配的行之外的所有行,并保留匹配项之前的 2 行

Pra*_*oya 2 vim

vim 中是否可以删除除与模式匹配的行之外的所有行,并在前后保留几行(如 grep 中的上下文)。

mer*_*011 5

既然您提到了 grep,最干净的方法可能就是简单地调用grep整个缓冲区。

%!grep -2 pattern_to_match
Run Code Online (Sandbox Code Playgroud)

如果我找到纯 vim 解决方案,我会更新,但我怀疑它会比上面的解决方案更干净。