emacsのC-x RET なんとかのキーバインドの謎が解けた...
一見覚えづらいemacsのデフォルトのキーバインド設定も、開発者はわかりやすいようにしていた...
C-x RET f
とかC-x RET r
みたいなキーバインド
大昔に、「emacsでファイルを開いたら文字化けしていて、どうやって直すんだろう?」の解決策として上の記事を見つけた。
このキーバインドがなかなか覚えられなくて、ブックマークして何回かこのページを訪ねていた。何と言ってもRETが急に出てくるのがわからなかった。
ソースに書かれているのはRETじゃなくて
最近こんなニュースがあった。
emacs内のIM (leim)1はM-x toggle-input-method
(C-\
)のステートフルな切り替えしかないよなあと思い、toggle-input-method
のソースコードを眺めてみた。
そしたら これ を見つけた。
define-key
で書かれているのはRET
じゃなくてC-m
。つまり C-x RET f
はC-x C-m f
で、C-x RET r
はC-x C-m r
という意味だった。もちろんemacs内でC-m
はRET
キーを押すのと同じなので、どちらのキーバンドでも同じコマンドが呼び出される。
ただ、C-m
のmはきっとMule2のmだろう。なんて覚えやすい!
こんな発見も
toggle-input-method
のキーバインドは現在C-\
だが、 これ を見ると別のキーバインドもあったらしい。
Shiftキー + spaceに割り当てたかったが、shift + spaceは普通にspaceの意味で使う人もいるからダメーってRMSに言われてコメントアウトしたようだ。
以上
久しぶりのブログでした。
emacs-mirrorへのリンクはcommit hashを指定したリンク(2018年12月29日現在で最新のもの)なので、将来mule-cmds.elが変わっても大丈夫なようにしてある😤3