Vimの置換方法まとめ
Vimの標準機能が素晴らしすぎて泣けてくる。編集ファイル内部の置換はまだしもファイル外の置換までできるとは。忘れないようにメモをしておこう。
ファイル内置換
Vimで編集中のファイルにたいしての置換は次の通り。
"ESC"でコマンドモードに切り替えた状態からの説明。
指定ルール
説明 | ルール |
---|---|
カーソル行の最初の文字だけ置換 | :s/<置換前文字>/<置換後文字>/ |
カールル行の全ての文字を置換 | :s/<置換前文字>/<置換後文字>/g |
全ての行の最初の文字だけを置換 | :%s/<置換前文字>/<置換後文字>/ |
全ての行の全ての文字を置換 | :%s/<置換前文字>/<置換後文字>/g |
置換確認モード | :%s/<置換前文字>/<置換後文字>/gc |
指定行数内の全ての文字を置換 | :<開始行>,<終了行>s/<置換前文字>/<置換後文字>/g |
正規表現でマッチした文字を\1で後方参照置換 | :s/\(<正規表現>\)/<追加文字>\1/g |
※上のスラッシュ(/)をセミコロンで置き換えてもOK。例えばファイルパス置換の時はバックスラッシュでエスケープしないといけないがセミコロン指定では不要になる。
文字列指定
カーソル行の先頭文字からファイル内の全ての文字列を置換する方法。
それぞれの指定でhogeをmogeに置換。
:s/hoge/moge/ :s/hoge/moge/g :%s/hoge/moge/ :%s/hoge/moge/g :%s/hoge/moge/gc :%s;hoge;moge:gc
Path文字指定
セミコロンで置換文字を指定するとファイルPathの場合はスラッシュのエスケープが不要になる。
/hoge/mogeというパスを/mogeに全て置換。
:%s;/hoge/noge;/moge;gc :%s/\/hoge\/noge/\/moge/gc