Emacsのキーバインディング設定

2012年1月16日 20:06

 Emacsの設定ファイル(.emacsなど)でキーバインディングを設定する場合の作法はググると色々なものが出てくるのだが、最近ではkbd関数を利用するのが一般的なようだ。コントロールキー同時押しや特殊キーに関数を割り当てる場合、一昔前は分かりにくい表記で書いていたが、kbd関数を使うと割と簡潔にキーを指定できる。

 たとえばCtrl+Shift+Insertというキーに「add-anchor」関数を割り当てる場合は下記のようにする。

(global-set-key (kbd "C-S-<insert>") 'add-anchor)

 あと、global-set-key関数を使う以外に、define-key関数を「global-map」引数付きを使う人もいるようだが、こちらについてはどちらも意味的には同じ。たとえば上記の例をdefine-keyを使って書くと、次のようになる。

(define-keyglobal-map (kbd "C-S-<insert>") 'add-anchor)

 「global-map」の代わりに「current-global-map」を使っても、基本的には同じ。Emacsのマニュアル中、キーマップ周りは「Commands for Binding Keys」にあるのでこちらもご参照を。