ぼくたちにはキーマップが足りない
 2006.09.12

よく使うコマンドをキーに割当てたくても、どこも空いてなかったり。

describe-bindings してみればわかりますが、1 ストロークで入力できるところはあらかた埋まっています。 また、ASCII コードに対応しないコードは (null window-system) なときに入力できないという問題があります。 かといって、C-x や C-c の下にすると何かのパッケージに上書きされるかもしれません。 仮に空いてたところで、たくさん登録したい場合は結局足りないということになります。 じゃあ、自分専用のキーマップを作って、使わないキーに割当ててしまえ、というはなし。

(defvar my-prefix-map (make-sparse-keymap))
(fset 'my-prefix my-prefix-map)

どのキーに割り振るかですが、C-z なんかおすすめです。 Emacs を iconify や suspend したりすることはそうそうないでしょうし、C-x C-z にも割当てられているので。

(let ((key "C-z"))
  (define-key my-prefix-map key (key-binding key))	; 退避
  (define-key global-map key 'my-prefix))

余談。screen では escape ^], してます。

カテゴリー:技術情報メモ