我全局开启了一个 ErgoEmacs 的小模式,它为基本编辑定义了许多自定义键盘快捷方式。但是当我打开任何 Lisp 文件时,slime-mode 会自动开启并覆盖 M-p 和 M-n 快捷键。然而,我希望 M-p 和 M-n 始终由 ergoemacs-mode 定义。如何设置小模式加载的顺序和定义键绑定的顺序?或者如何提高 ergoemacs-mode 键绑定的优先级?
我全局开启了一个 ErgoEmacs 的小模式,它为基本编辑定义了许多自定义键盘快捷方式。但是当我打开任何 Lisp 文件时,slime-mode 会自动开启并覆盖 M-p 和 M-n 快捷键。然而,我希望 M-p 和 M-n 始终由 ergoemacs-mode 定义。如何设置小模式加载的顺序和定义键绑定的顺序?或者如何提高 ergoemacs-mode 键绑定的优先级?
(add-hook 'slime-mode-hook
(lambda ()
(define-key slime-mode-map [?\M-p] nil)
(define-key slime-mode-map [?\M-n] nil)))
注意:这个变量名可能与slime-mode-map不同(并且只有在加载slime-mode后才会存在),但是保证100%未经测试。
autoload
机制按需加载的,或者通过require
显式加载的,你通常应该将加载顺序视为完全任意的,尽管你可能能够通过重新排列文件内容来控制显式加载的内容。你可能会发现以下链接有用:https://dev59.com/nHRB5IYBdhLWcg3wN1EQ#5340797 - phils(assoc 'ergomacs-mode minor-mode-map-alist)
,但在这种情况下,您可以使用assq
而不是assoc
。 - Felipe