:g(存在する行):v(存在しない行)に対してコマンド実行する方法よく忘れる。
コマンドの詳細
Vim日本語ドキュメントの"基本的な編集" - "repeat" - "多重繰り返し"を参照。
:gの詳細
:[range]g[lobal]/{pattern}/[cmd]
:[range]g[lobal]!/{pattern}/[cmd] <-- :vと同義語
:vの詳細
:[range]v[global]/{pattern}/[cmd]
[range]は検索範囲。未設定はすべての行を対象に。
[pattern]は正規表現で検索対象の文字を設定。
[cmd]はExコマンド(いわゆる":"から始まるコマンド)を設定。
でもここまで書いておいて・・・
実際に使うのって行の削除が主だと思うの。
ある文字を含む行だけ削除
:g/{pattern}/d
ある文字を含む行以外を削除
:v/{pattern}/d
空白の行をすべて削除(使うことが多い)
:v/./d <-- つまり一文字に一致しない行=空白行