我有自己的用户定义键绑定,如下所述: Globally override key binding in Emacs
每当我加载一个新的主要模式时,比如 OrgMode,我都会重写一些绑定以满足我在该特定模式下的需要。但是当我加载另一个具有自己覆盖的主要模式时,即使我不再处于该主要模式的缓冲区中,它们也会保持不变。
例如
(define-key custom-keys-mode-map (kbd "C-p") 'some-cool-function)
(add-hook 'org-mode-hook
(lambda ()
(define-key custom-keys-mode-map (kbd "C-p") 'org-cool-function )))
(add-hook 'sunrise-mode-hook
(lambda ()
(define-key custom-keys-mode-map (kbd "C-p") 'sunrise-cool-function )))
起初我使用 Cp 来执行我很酷的默认功能。加载 Org-Mode 后,我使用 Cp 执行“org-cool-function”,当我加载 Sunrise-Commander 时,Cp 执行“sunrise-cool-function”。
但是当我回到 Org-Mode 文件时,Cp 仍然尝试执行“sunrise-cool-function”而不是“org-cool-function”。
希望我很清楚:)