可能重复:
全局覆盖 Emacs 中的键绑定
在我的.emacs
文件中,我为 control-meta-h 添加了一个键绑定
(global-set-key (kbd "C-M-h") 'windmove-left)
只要我不进入 c-mode 或 c++-mode,它就可以正常工作。两者都通过默认行为覆盖它,即c-mark-function
. 我如何避免我的绑定被 c-mode/c++-mode 钩子覆盖?
可能重复:
全局覆盖 Emacs 中的键绑定
在我的.emacs
文件中,我为 control-meta-h 添加了一个键绑定
(global-set-key (kbd "C-M-h") 'windmove-left)
只要我不进入 c-mode 或 c++-mode,它就可以正常工作。两者都通过默认行为覆盖它,即c-mark-function
. 我如何避免我的绑定被 c-mode/c++-mode 钩子覆盖?
可以通过在单独的次要模式中定义键绑定来解决。有关详细信息,请参阅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)