vim 文字列置換 基本的な事

  • 70
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

:%s/hoge/fuga/g
これだけでファイル内のすべてのhogefugaに置換できます。


以下に少し説明を書いていきます。

vimでの置換は:sを使用します。

:%sとすることで現在開いているファイル内で置換を実行するという意味になります。

まず1番簡単な方法

:%s/hoge/fuga/

でもこれだと

hogefuga
hogehoge

というファイルだと…

fugafuga
fugahoge

というように1行内に複数マッチする場合でも最初にマッチした文字列しか置換されません。

1行内でマッチした文字列すべてを置換したい場合は

:%s/hoge/fuga/g

と最後にgを入れれば解決です。

更にマッチした文字列を1つずつ確認しながら置換する場合は

:%s/hoge/fuga/c

と最後にcを入れればいいだけです。

なので

:%s/hoge/fuga/gc

とすればファイル内すべてのマッチした文字列を確認しながら置換できます。

また置換を行う行の範囲を指定したい場合は

:10,20s/hoge/fuga/gc

といったように指定すれば10-20行の間に存在するマッチした文字列のみを置換することができます。

こちらもどうぞ

vimで一気にコメントアウトする方法(複数行の先頭に文字を追加する方法)

vimで任意の文字列が含まれる行を一括で削除する方法