I want to use a minor mode which rebinds a major-mode key that I definitely want to keep. How can I rebind the key without deleting it from the minor-mode map globally? I kn
Here's a function to handle all the cumbersome bits.
(defun local-set-minor-mode-key (mode key def)
"Overrides a minor mode keybinding for the local
buffer, by creating or altering keymaps stored in buffer-local
`minor-mode-overriding-map-alist'."
(let* ((oldmap (cdr (assoc mode minor-mode-map-alist)))
(newmap (or (cdr (assoc mode minor-mode-overriding-map-alist))
(let ((map (make-sparse-keymap)))
(set-keymap-parent map oldmap)
(push `(,mode . ,map) minor-mode-overriding-map-alist)
map))))
(define-key newmap key def)))
Thereafter you can do
(local-set-minor-mode-key ' (kbd "key-to-hide") nil)