Help us understand the problem. What is going on with this article?

vim 文字列置換 基本的な事

:%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で任意の文字列が含まれる行を一括で削除する方法

参考書籍

Vimテクニックバイブル~作業効率をカイゼンする150の技
実践Vim 思考のスピードで編集しよう! (アスキー書籍)
マスタリングVim
入門vi 第6版

mixi
全ての人に心地よいつながりを
http://mixi.co.jp
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away