2011-11-16

Emacs22以降のプログラマブル置換

こんな機能があるなんて知らなかったよ! なんでもっと早く教えてくれなかったんだよ!

置換後文字列として「1」とか「2」とかと同じように「,式」と書けば式を評価した結果が挿入される。式の結果は文字列じゃ無くてもいいみたい。例えば「([0-9]+)」から「,(+ 100 (string-to-int 1))」への置換を実行すれば、数字を+100した数字へ置換できる。

「#」も知らなかった。0から始まるマッチした数に展開されるようだ。なので、「[0-9]+」を「#」に置換すれば、番号の振り直しができる。0から始まるのが嫌ならば「,式」と組み合わせればよい。例えば「,(+ 100 #)」のようにすれば100から始まる連番に置換できる。

連番挿入用関数とかわざわざ作ってたよ。

まあ、後はマニュアルをよく読め、ということで。