雑草SEの備忘録

東大を卒業し、SEとして働くことになった。備忘録的に作業を綴る。

vimの置換(%s)で全角数字を半角数字に変換する方法

例えば、とある電気料金の基本料金が次の様になっていて、全角では使いにくいので半角に変換したい。

291円60銭
437円40銭
583円20銭
874円80銭
1,166円40銭
1,458円00銭
1,749円60銭

まず、円や銭やカンマを置換する。パイプ(|)で繋げられる。このとき、`g`の次に`e`とするとエラーを抑制できる。

:%s/円/./ge | %s/銭//ge | %s/,//ge

同様に考えて、一気にパイプでつなげていく。

:%s/0/0/ge | %s/1/1/ge | %s/2/2/ge | %s/3/3/ge | %s/4/4/ge | %s/5/5/ge | %s/6/6/ge | %s/7/7/ge | %s/8/8/ge | %s/9/9/ge

正規表現等を使い、もう少しスマートなやり方がありそうなものだが。