この質問にはすでに答えがあります:
Vimでは、特定のテキスト文字列を含む行にのみ興味があり、他のすべての行を削除したいことがよくあります。
文字列を含む行を一致させるのは簡単です:
:s/^.*foo.*\n//
私が通常行うことは、2つのパスです。1つは、特別な最初の文字で必要なすべての行を「フラグ」するためのものです。
:s/^\(.*foo.*\)$/X\1/
また、2番目のパスでは、固定位置にある1文字に対して否定一致を簡単に実行できるため、文字列のないすべての行を削除します。
:s/^[^X].*\n//
しかし、1回のパスでこれを行うためのはるかに簡単な方法はありませんか?私は何が欠けていますか?
私はその時にそれを見つけられなかったにもかかわらず、これは以前に尋ねられたと思います:vimは特定の単語を含まないすべての行を削除します
—
hippietrail