読者です 読者をやめる 読者になる 読者になる

ポクポク

ポクッとしてツナッ

rubyでreplace-regionするelisp(2)

Emacs

この記事もちょっと古いです。新しいの

前のをちょっと良くした。

前のは大きいリージョンだと動かなかったり%記法で埋め込んでるから[]の対応が変なリージョンだと動かなかった。tempfileを作ってヒアドキュメントで埋め込むようにした。ヒアドキュメントの区切り文字はEOS+tempfileのパスのsha1を使ったからEOSとかリージョンに入ってても大丈夫。


つかいかた
上のをload-pathにいれて、

(require 'replace-region-by-ruby)

してM-x replace-region-by-rubyしたらminibufferに入力促される。
`R`っていう変数にリージョンの文字列が入ってるからRubyで適当に操作して出力したもので置換される。

puts R.split(' ').map(&:capitalize).join(' ')

とかしたらリージョン中の単語の頭を大文字にできる。
Emacsのつらい正規表現書かなくていいし、けっこう便利。

Rっていう名前が気に食わなかったり、Emacsのパスにruby入ってない人はrrruby:region-variableとかrrruby:ruby-commandを上書きしたらいい。