我有一个全局打开的ErgoEmacs次要模式,它为基本编辑定义了许多自定义键盘快捷键。然而,当我打开任何lisp文件时,slime模式会自动打开,并用自己的命令覆盖M-p和M-n-p和M-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模式后才会存在)。