vimで高度(?)な置換をする
他人のHTMLソースを変更する仕事を割り当てられました。
そのソースがあまりきれいでなく、こつこつと修正しています。
たとえばbgcolor=#FFFFFFなどダブルクォーテーションでくくられていないものも多数あり
これを一発で修正できないかと考えてました。
vimの正規表現が使える
:%s/置換前文字/置換後文字/g
とすると一気に置換ができることは知っていたのですが、
bgcolor=#FFFFFF(色を指定している部分は様々)をbgcolor="#FFFFFF"に変換するにはどうしたものかと悩みました。
正規表現のキャプチャとやらが使える
perl等の正規表現で()でくくったものは$1,$2などで参照できるみたいです。
http://japan.internet.com/column/developer/20050822/28.html
vimでもできないかなーと調べていたら
\(\)でくくったものは\1,\2などで参照できることが判明
こんな感じでできるみたいです。
:%s/bgcolor=#\(.\{0,6\}\)/bgcolor="#\1"/g
一気に望みの作業ができました。