Emacs で「このキーバインド上書きしたいなぁ」と思うことがよくあって、でも "\C-x" とか (kbd "x") とか "M-
- M-x describe-key して上書きしたいキーバインドに割り当てられてる関数のヘルプをひらく
- そのヘルプのバッファから定義もとのファイルへ飛ぶか M-x find-function 関数名 する
- 定義元のファイルで M-x occur 関数名 して define-key してる箇所をみつける
- define-key の部分を .emacs にコピペして自分の好きな関数を割り当てる
俺の場合、 ns-toggle-fullscreen を M-RET に割り当てたかったんだけど eshell バッファだと eshell-queue-input が呼ばれてしまい、 eshell-mode-hook で上書きしたかったけど M-RET をどう書いたらいいのかわかんなくて、上のやり方でどうにかした。
(global-set-key [(meta return)] 'ns-toggle-fullscreen) (add-hook 'eshell-mode-hook '(lambda () (progn (define-key eshell-mode-map "\C-a" 'eshell-bol) (define-key eshell-mode-map [up] 'previous-line) (define-key eshell-mode-map [down] 'next-line) (define-key eshell-mode-map [(meta return)] 'ns-toggle-fullscreen) ) ))
追記
コメントをもらった。 特殊なキーを含むキーバインドを変更したいときの設定方法と調べかた - 刺身☆ブーメランのはてなダイアリー descbinds-anything.el を使うと便利そう。