2012-12-27 47 views
2

可能重复:
Globally override key binding in Emacs钩将覆盖用户定义的Emacs键绑定

在我.emacs文件,我添加了控制元-H

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

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

+0

是的,在其他问题scottfrazer回答解决我的问题。我们应该把它作为一个副本关闭。 –

回答

2

可以通过在单独的次要模式下定义keybind来解决。有关详细信息,请参阅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)