LoginSignup
1
0

More than 3 years have passed since last update.

vimで存在する・存在しない行に特定のコマンドを実行する(:v, :g)

Posted at

: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   <-- つまり一文字に一致しない行=空白行
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0