Pages

2012年11月14日水曜日

Emacsのキーバインドの登録方法色々

Emacsのキーバインドの設定

Emacsの特徴として自分の好みのキーバインドに機能(関数)を登録するというのが大きな特徴だと思うのですが、いくつかの登録方法があるので自分の忘れ防止を兼ねて書こうと思います。

文字列で指定する方法

文字列で指定する方法ですが";"などのアルファベット以外の文字を指定することができないようです。メリットとしては簡潔に書ける点でしょうか。

(global-set-key "\C-h"     'doctor)
(global-set-key "\C-\M-h" 'doctor)
(global-set-key "\M-[" 'doctor);; (global-set-key "\C-;" 'doctor) <- 設定できない

(kbd)記法

上のC-;が指定できます。私が試したかぎりだと他に"+-><,.:"が指定できました。後半は設定方法を忘れやすいのでメモ的なもの、、、

(global-set-key (kbd "C-;")          'doctor)
(global-set-key (kbd "C-+") 'doctor)
(global-set-key (kbd "C-\\") 'doctor) ; コントロール+\(global-set-key (kbd "C-S-d") 'doctor) ; コントロール+シフト+d(global-set-key (kbd "M-[") 'doctor) ; メタ(alt)+[(global-set-key (kbd "<C-S-up>") 'doctor) ; コントロール+シフト+up↑(global-set-key (kbd "<C-S-down>") 'doctor) ; コントロール+シフト+down↓(global-set-key (kbd "<C-M-return>") 'doctor) ; コントロール+メタ+Enter(global-set-key (kbd "<muhenkan>") 'doctor) ; 無変換、windowsはconvert?(global-set-key (kbd "S-<f7>") 'doctor) ; シフト+F7

ベクタ記法

ベクタ記法というのかしらないのですが、[]がベクタというらしいのでとりあえずそう呼んでみます。タブを絡めたキーバインドを設定するのに私は使っています。

(global-set-key [(C-tab)]           'doctor) ; コントロール+タブ(global-set-key [(backtab)]         'doctor) ; シフト+タブ(global-set-key [(C-S-iso-lefttab)] 'doctor) ; コントロール+シフト+タブ

まとめ

色々設定できるのでkbd記法がおすすめです。タブ絡みだと同設定するのかわからないのでご存知の方がいたら教えていただけるとうれしいです。ちなみに上記のコードを他人の.emacsに貼りつけるのは嫌がらせになるのでやめましょう。


0 件のコメント:

コメントを投稿