回答:
次のように、モード固有のマップでキーを定義できます。
(add-hook 'coffee-mode-hook
(lambda ()
(define-key coffee-mode-map (kbd "C-c c") 'coffee-compile-file)))
または、よりきれいに:
(eval-after-load "coffee-mode"
'(define-key coffee-mode-map (kbd "C-c c") 'coffee-compile-file))
2番目のステートメントでは、キーの定義が1回だけ行われますが、最初のステートメントでは、coffee-mode
有効になるたびに定義が行われます(過剰です)。
eval-after-load
この場合ステートメントを使用するよりもクリーンではありません。回答を適宜更新します。
Emacs 24.4で置き換えeval-after-load
られましたwith-eval-after-load
:
** New macro `with-eval-after-load'.
This is like the old `eval-after-load', but better behaved.
だから答えは
(with-eval-after-load 'coffee-mode
(define-key coffee-mode-map (kbd "C-c C-c") 'coffee-compile-file)
(define-key erlang-mode-map (kbd "C-c C-m") 'coffee-make-coffee)
;; Add other coffee commands
)
(add-hook 'coffee-mode-hook (lambda () (define-key coffee-mode-map (kbd "C-c c") 'coffee-compile-file)))