在 emacs 中设置主要模式特定的键绑定

Jef*_*eff 9 emacs key-binding

在我的.emacs文件中,我想为特定的主要模式添加一个键绑定(设置coffee-compile-fileC-c C-c咖啡模式)。

我找到了很多关于使用local-set-keyand的说明global-set-key,所以我可以在咖啡模式下打开文件后轻松添加此绑定,但是如果由.emacs.

gee*_*aur 8

使用模式挂钩。 C-h m显示有关主要模式的信息,通常包括它支持的钩子;然后你做类似的事情

(add-hook 'coffee-mode-hook ;; guessing
    '(lambda ()
       (local-set-key "\C-cc" 'coffee-compile-file)))
Run Code Online (Sandbox Code Playgroud)


Tre*_*son 6

您可以在特定于模式的映射中定义键,例如:

(add-hook 'coffee-mode-hook
    (lambda ()
        (define-key coffee-mode-map (kbd "C-c c") 'coffee-compile-file)))
Run Code Online (Sandbox Code Playgroud)

或者,更干净:

(eval-after-load "coffee-mode"
    '(define-key coffee-mode-map (kbd "C-c c") 'coffee-compile-file))
Run Code Online (Sandbox Code Playgroud)

第二个语句导致键定义只发生一次,而第一个语句导致每次coffee-mode启用时定义发生(这是矫枉过正)。

  • 仅供参考:这些括号在错误的地方。这个 add-hook 应该是:`(add-hook 'coffee-mode-hook (lambda () (define-key coffee-mode-map (kbd "Cc c") 'coffee-compile-file)))` (2认同)