文字列の置き換えは、文字列の検索に似ています。
ある行の中で、文字列の置き換えを行いたい場合
:s/置き換えられたい文字列/置き換えたい文字列/
というように入力します。
これに対して、文字列の置き換え範囲を全行にしたい場合は
:%s/置き換えられたい文字列/置き換えたい文字列/
というように入力します。こうすると置き換えられたい文字列が、置き換えたい文字列に変換されます。
上記の2パターンの置き換えコマンドに共通することですが、これらのコマンドは、置き換えられたい文字列が1行中に2つ存在した場合、最初にヒットした文字しか置き換えが行われません。
例えば下図のようなファイルがあったとして、コマンドをcommandに置き換えしたい場合、3行目は左側の
コマンド しか変更されません。
文字列の置き換え
文字列の置き換え
1行中に置き換えたい文字列が2つ存在し、どちらも置き換えたい場合は
:s/置き換えられたい文字列/置き換えたい文字列/g
:%s/置き換えられたい文字列/置き換えたい文字列/g
というように最後に
g オプションをつけます。
これで1行中に複数の対象文字列が存在しても問題なく置き換えすることができます。
人によっては置き換えする前に確認したい人もいるかと思います。そういう方は
:s/置き換えられたい文字列/置き換えたい文字列/cg
:%s/置き換えられたい文字列/置き換えたい文字列/cg
とします。するとexコマンド実行後に置き換え対象文字列がハイライトされ、中止したり一気に置き換えたりできます。
置き換えのオプションはファイルの下に表示されます。下図参照してください。
文字列の置き換え
一気に変換する場合は
a
一つずつ変更する場合、または変更しない場合は
y or
n
現在アクティブになっている文字列を変更して終了したい場合は
l
中止したい場合は
q
を押します。