两种Emacs次要模式中的键盘快捷键冲突



我有一个全局打开的ErgoEmacs次要模式,它为基本编辑定义了许多自定义键盘快捷键。然而,当我打开任何lisp文件时,slime模式会自动打开,并用自己的命令覆盖M-pM-n-pM-n

如何设置次要模式加载和定义键绑定的顺序?或者如何提高遍历模式密钥绑定的优先级?

我认为您需要确保ErgoEmacs出现在变量minor-mode-map-alist中的slim模式之前。可能有更好的方法,但下面的代码应该可以实现这一点。如果它能满足你的要求,请告诉我。

(需要'cl)(添加挂钩'黏液模式挂钩(lambda()(让(elem(如果没有,请删除(lambda(项目)(等于遍历模式(汽车项目))次要模式映射列表)))(setq次要模式映射列表(删除elem次要模式映射))(添加到列表'次要模式映射列表elem)))

也许一个更简单的解决方案是删除Slime的绑定:

(add-hook 'slime-mode-hook
  (lambda ()
    (define-key slime-mode-map [?M-p] nil)
    (define-key slime-mode-map [?M-n] nil)))

注意:保证100%未经测试,变量的名称可能与slime模式映射不同(它可能只有在加载slime模式后才会存在)。

最新更新