sコマンドを使うと、vim内でsedと同じことができる。
:s/before/after/
- 現在カーソルがある行の一番はじめに出てくるbeforeをafterに置換
:s/before/after/g
- 現在カーソルがある行の全てのbeforeをafterに置換
:1s/before/after/
- 現在開いているファイル1行目の一番はじめに出てくるbeforeをafterに置換
:1s/before/after/g
- 現在開いているファイル1行目に出てくる全てのbeforeをafterに置換
:1,10s/before/after/g
- 現在開いているファイル1〜10行目に出てくる全てのbeforeをafterに置換
:%s/before/after/
- 現在開いているファイルの各行の一番はじめに出てくるbeforeをafterに置換
:%s/before/after/g
- 現在開いているファイルに出てくる全てのbeforeをafterに置換
:%s/before/after/gc
- c をつけると、確認(yes/no)が出るようになります。
:1,10s#before#after#gc
- "/"は別の文字でも可能。オススメは "#" (見易いので。また、/を\でエスケープしなくてよくなる)。
:%s#a\|b#c#g
- aまたはbを、cに置換する。
- BREの (sedやgrepと同じ) 正規表現になる。
- | はor条件を表す。
- \ で | をメタ文字にする(エスケープする)。
:%s#\va|b#c#g
- aまたはbを、cに置換する
- \vでEREの (grep -e、egrep、awk、perlと同じ) 正規表現になる。
:%s#\v(a|b)#\1c#g
- aまたはbを、acまたはbcに置換する
- \1は ( ) にマッチしたパターン文字列になる
- oniguruma の$1と同じ
- \1は ( ) にマッチしたパターン文字列になる