How to remove a key from a minor-mode keymap in Emacs?

malana picture malana · Sep 29, 2011 · Viewed 9.1k times · Source

I have globally assigned C-c/ to ace-jump-mode but reftex-mode (a minor mode for citations used with AucTeX) overrides this key with some function I never use.

I tried local-unset-key but it only unbinds keys from the current major mode's map.

How do I remove C-c/ from reftex-mode-map without making changes to reftex.el?

Answer

Lindydancer picture Lindydancer · Sep 29, 2011

You can change an existing key map using define-key. By passing nil as the function to call, the key will become unbound. I guess that you should be able to do something like:

(define-key reftex-mode-map "\C-c/" nil)

Of course, you should do this in some kind of hook, for example:

(defun my-reftex-hook ()
  (define-key reftex-mode-map "\C-c/" nil))
(add-hook 'reftex-mode-hook 'my-reftex-hook)