Emacs – 加载模块后绑定密钥

我想为emacsbuild立一个Node.js的keybindings REPL。 我看了一下nodejs-repl ,现在我可以打开一个REPL并使用nodejs-send-region命令来执行代码。

但是我不知道如何绑定例如Cc Ce到这个命令。 我认为我必须使用comint-mode (?)。 我试过了:

 (require 'nodejs-repl) ;; bind shortcuts when in node mode-line (eval-after-load 'nodejs-repl (lambda () (local-set-key (kbd "Cc Ce") #'nodejs-repl-send-region))) 

在加载库之后,您正在绑定当前本地键盘映射中的键。 加载库很可能不会打开你真正想要绑定键的键盘映射模式。至less这是典型的,它对应于GNU Emacs编码约定 ,它们表示:

简单地加载一个包不应该改变Emacs的编辑行为。 包含一个或多个命令来启用和禁用该function,或调用该function。

任何包含自定义定义的文件都必须使用此约定。 如果修复这样一个文件遵循这个惯例需要一个不兼容的变化,那么继续进行不兼容的修改; 不要推迟它。

你想要做的就是使用define-key在适当的键盘映射中绑定define-key ,并且你想在模式钩子中做到这一点。

 (require 'nodejs-repl) (define-key nodejs-repl-mode-map (kbd "Cc Ce") #'nodejs-repl-send-region)