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をサポートしてみた。