rubyでreplace-regionするelisp

追記: 新しいやつ


をload-path通ってるところに置いて、

(require 'replace-region-by-ruby)
M-x replace-region-by-ruby

するとminibufferに入力促されるからrubyを書く。
デフォルトでは`R`って変数にregionの文字列が入ってる。
出力した結果でregionが置換される。

以下のようにすればregionの各行の最初の文字を大文字に置換できる。

puts R.split("\n").map(&:capitalize)

Emacs正規表現、変なところでハマること多い気がして作った。

%記法で`%q[region]`みたいなのを渡してるから、region内に対応の取れてない`] `があるとうまく動かない。
カッコの中で一番 [ ] が対応取れてないこと少ない気がするから`%q[ ]`にした。
tempfileとか使えばちゃんとできる気がするけどめんどいと思いました。
しょぼい割に便利だと思う。無限ループ回ったらC-gで止めれるはず。