我安装了一个新的主要模式(sunrise commander),我想重置所有预定义的键绑定。 虽然我可以使用
(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)))
OR
(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)))
(eval-after-load "sunrise-commander"
'(setq sr-mode-map (make-sparse-keymap)
dired-mode-map (make-sparse-keymap)))
供将来参考 - 以上是唯一需要的代码。 make-sparse-keymap是一个返回空键映射的函数(除非提供参数,显然)。
答案 0 :(得分:2)
您可以将sr-mode-map
绑定到新创建的空键映射:
(setq sr-mode-map (make-sparse-keymap))
您可能需要将此延迟到日出指挥官加载之后:
(eval-after-load "sc" ;; Fix this line to include the correct library name
'(setq sr-mode-map (make-sparse-keymap)))