2012-12-27 46 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)