region を入れかえる trans-regions.el を作った

インストールは以下で。
M-x install-elisp-from-emacswiki trans-regions.el

使い方は簡単。M-x trans-regions ってするだけ。そのあとは以下のように操作する。

  • すでに region を選んでるときは二つめの region を選択する
  • 選んでないときは、最初の region を選択して、次に二つめの region を選択する。

どちらも region を選択したらモードラインに書かれてる通り decide すれば region を決定する。二つの region が決定したら入れかえてくれる。

ごちゃごちゃ書いたけど、使ってみた方が速いと思うんで、興味のある人は試してみて下さいです。

EmacsWiki に swap-region と anchored-transpose っていう region 入れかえ用の elisp が既にあるんだけど、多分その子たちよりは使いやすいと思う。

この手のコマンドを作りたい場合

入れ替えをやるための標準の関数には以下がある

  • transpose-regions
  • transpose-subr

おすすめは transpose-regions の方。こっちの方が断然使いやすい。Emacsの各種入れ替えコマンドは transpose-subr を使ってるけど、使いにくい上にドキュメントが無いからやめた方がいい。ドリューたんも #3249 - 23.0.93; doc of transpose-subr and transpose-regions - GNU bug report logs で嘆いてた。

追記

  • Emacs22をサポートしてみた。