Hook会覆盖用户定义的emacs键绑定

时间:2012-12-27 18:12:01

标签: emacs hook

  

可能重复:
  Globally override key binding in Emacs

在我的.emacs文件中,我为control-meta-h添加了一个键绑定

(global-set-key (kbd "C-M-h") 'windmove-left)

它工作正常,只要我不进入c模式或c ++模式。两者都通过默认行为覆盖它,即c-mark-function。你如何避免我的绑定被c-mode / c ++-mode钩子覆盖?

1 个答案:

答案 0 :(得分:2)

可以通过在单独的次要模式中定义键绑定来解决。有关详细信息,请参阅Globally override key binding in Emacs,其中scottfrazer提供以下解决方案:

(defvar my-keys-minor-mode-map (make-keymap) "my-keys-minor-mode keymap.")
(define-key my-keys-minor-mode-map (kbd "C-M-h") 'windmove-left)

(define-minor-mode my-keys-minor-mode
  "A minor mode so that my key settings override annoying major modes."
   t " my-keys" 'my-keys-minor-mode-map)

(my-keys-minor-mode 1)