Vim
sed

VIMで置換するときのsコマンドの使い方メモ

More than 1 year has passed since last update.

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と同じ