vim :g, :global
2023-01-01
:g, :global とは
「:global(:g)」 とは、一見、検索コマンドに見えますが、本当は、パターンにマッチした行に ex コマンドを実行するためのコマンドです。
:g :global E147 E148 :[range]g[lobal]/{pattern}/[cmd] [range]の範囲で{pattern}にマッチする行に対して、Exコマ ンド[cmd](省略した場合 ":p")を実行する。 :[range]g[lobal]!/{pattern}/[cmd] [range]の範囲で{pattern}にマッチしない行に対して、Exコ マンド[cmd](省略した場合 ":p")を実行する。 :v :vglobal :[range]v[global]/{pattern}/[cmd] :g! と同じ。
:gの例
foo のある行を削除します。
:g/foo/d
foo のある行の hoge を meta に置換します。
:g/foo/%s/hoge/meta/g
空行の削除
:g/^$/d
:vglobal :v
:v は、:g の否定です。 foo のない行を削除します。
:v/foo/d
foo のない行の hoge を meta に置換します。
:v/foo/%s/hoge/meta/g