我有我自己的用户自定义键绑定改写如下所述: Globally override key binding in Emacs主要绑定在Emacs
每当我打开一个新的主要模式,说org-模式,我有我的一些绑定的覆盖,以适应我在这种特定模式下的需求。 但是当我加载另一个主要模式时,它们有其自己的重写,即使我不在具有该主模式的缓冲区中,它们仍保持放置状态。
例如
(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)))
起初我使用C-p来执行我的冷静,默认情况下,功能。 加载Org-Mode之后,我用C-p执行“org-cool-function”, ,当我加载Sunrise-Commander时,C-p执行“sunrise-cool-function”。
但是当我回到组织模式文件时, C-p仍然试图执行“日出冷却功能”而不是“org-cool-function”。
希望我清楚:)
这很好,但是解决方法是什么?; – CrimsonKing 2013-04-08 19:21:06
那么,从一开始就不会打败自定义次要模式的目的吗?要覆盖我不希望或想要的令人讨厌的主要模式键绑定? – CrimsonKing 2013-04-08 19:27:06
但是您希望不同模式下的相同密钥具有不同的行为。因此你需要不同的键盘映射。所以你可以做'自定义键模式映射',然后'自定义组合键模式映射'进一步推进将需要工作。我刚加入的'eval-after-load'应该足以满足您的需求。 – 2013-04-08 19:29:23