vi一括置換

基本

カレント行で最初に出現するoldというパターンをnewに置き換える。

:s/old/new/

カレント行のすべてのoldをnewに変換する。

:s/old/new/g
  • g 一括置換

ファイル全体ですべてのoldをnewに変換する。

:%s/old/new/g

置換の確認

一括置換をする前にファイルを:wでセーブしておく。もし間違って置換しても編集内容をセーブせずに放棄できる。

置換前に確認

:%s/old/new/gc
  • c 置換前に確認する
replace with bar (y/n/a/q/l/^E/^Y)?

というかんじでステータスラインに確認メッセージがでた。yで置換されて次の候補へ。nだと置換せずに次の候補へ。

nコマンドと.のペアでの置換確認
n
最後の検索の繰り返し
.
最後のコマンドの繰り返し

例)whichを使った部分を1つ1つチェックしていって置換したいものだけ置換

[Esc]   コマンドモードへ(もしなっていなかったら)
/which  whichを検索
cwthat  thatに置換する
n       次のwhichへ
n       (置換せずに)次のwhichへ
.       置換する(whichをthatに変える)