«前の日記(2008年09月28日) 最新 次の日記(2008年10月02日)» 編集

ema log


2008年09月30日 [長年日記]

_ [Linux]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」というものもあるようです.

本日のツッコミ(全2件) [ツッコミを入れる]
_ yhara (2008年09月30日 08:17)

正規表現の前に「\v」を付けるとメタ文字のエスケープが必要なくなります(つまりRubyとかの正規表現に近くなる)。僕はいつも\vを付けて使ってます。<br> :s/\v(.)c/\1/g

_ ema (2008年09月30日 18:28)

超便利ですね。追記の上、活用させていただきます。