我安装了一个新的主要模式(日出指挥官),我想重置其所有预定义的键绑定。虽然我可以使用
(add-hook 'sr-mode-hook
'(lambda ()
(define-key sr-mode-map "KEY" nil)
...
))
这种模式有很多绑定,这对我来说是一个乏味的标签。
有没有办法在单行或少行中完全重置此主要模式的键绑定?
编辑#1:我尝试使用这些方法,如下所述:
(eval-after-load "sunrise"
'(setq sr-mode-map (make-sparse-keymap)))
或者
(add-hook 'sr-mode-hook
(lambda ()
(setq sr-mode-map (make-sparse-keymap))))
可悲的是,它们似乎都不起作用。
我真的需要定义一个新的空键盘映射吗?例如使用
(defvar sunrise-keys-mode-map (make-keymap) "sunrise-keys-mode keymap.")
(define-minor-mode sunrise-keys-mode
"A minor mode so that my key settings override sunrise major mode keymap."
t " my-keys" 'sunrise-keys-mode-map)
(sunrise-keys-mode 1)
(eval-after-load "sunrise" ;; Fix this line to include the correct library name
'(setq sr-mode-map (sunrise-keys-mode)))
编辑#2:在对日出指挥官代码进行一些修改后,我注意到 sr-mode-map 是基于 dired 模式图的。我禁用了两者,它工作得很好。
(eval-after-load "sunrise-commander"
'(setq sr-mode-map (make-sparse-keymap)
dired-mode-map (make-sparse-keymap)))
供将来参考 - 以上是唯一需要的代码。make-sparse-keymap 是一个返回空键映射的函数(显然,除非提供了参数)。