2

Possible Duplicate:
Globally override key binding in Emacs

In my .emacs file, I added a keybinding for control-meta-h

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

It works fine, as long I don't enter c-mode or c++-mode. Both overwrite it by the default behavior, which is c-mark-function. How you I avoid that my binding is overwritten by the c-mode/c++-mode hook?

Community
  • 1
  • 1
Philipp Claßen
  • 41,306
  • 31
  • 146
  • 239

1 Answers1

2

Can be solved by defining the keybinds in a separate minor mode. For details, see Globally override key binding in Emacs, where scottfrazer provides the following solution:

(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)
Community
  • 1
  • 1
Philipp Claßen
  • 41,306
  • 31
  • 146
  • 239