標準のキーバインドをいじる

キーバインドを久しぶりにいじってみた - kozima の雑記 の続き。Q なんてめったに入力しないから self-insert-command じゃないものにバインドした方がいいよねということでキーバインド変更してたんですが、ちょっとした問題が。

Q はグローバルには self-insert-command なのですが、mew, w3m などバッファが read-only になるようなモードでは他のコマンドにバインドされていることがあります。そういう場合にはローカルなキーマップでグローバルなバインディングが隠されてしまうので、いつもの気分でキーを押すと意図しないコマンドが呼ばれてしまうことになります。

このように、標準のキーバインドをいじる場合には常にモードごとのキーバインドで上書きされるかもしれないという問題がついて回ります。きれいな解決策があればよいのですが、今のところいい方法は思いついていません。

モードごとのキーマップをいちいちいじりたくなければ function-key-map か keyboard-translate-table でも使うことになるのでしょうか。そもそも標準のキーバインドを変更するという行為がある意味ではイレギュラーなことなので、宿命と思ったほうがいいのかもしれません。