2008年09月30日 (火)
vimの正規表現
よくわからなくなるのでメモ
:s/a/b/
が基本形.範囲指定しないと「現在の行」が対象になる.
:s/a/b/g
g をつけると全置換.範囲指定が無ければ,「現在の行」だけが置き換わる.わかると便利. 特定の範囲にしたい場合はヴィジュアルで選んでおく.
:%s/a/b/g
バッファ全体で全置換
正規表現
メタ文字はエスケープしないと有効にならない.後方参照は \1, \2 など.
:s/a\(.\)c/\1/g
だと,abc が b に置き換わる.ただし,「\v」を先頭に入れると、エスケープしなくて良くなるそうです > thanks to yhara さん!!
:s/\va(.)c/\1/g
Perl風の正規表現でかける「eregex.vim」というものもあるようです.
[]




正規表現の前に「\v」を付けるとメタ文字のエスケープが必要なくなります(つまりRubyとかの正規表現に近くなる)。僕はいつも\vを付けて使ってます。 <br> :s/\v(.)c/\1/g <br>
超便利ですね。追記の上、活用させていただきます。