emacs keyboard-shortcuts elisp

¿Cómo eliminar una clave de un mapa de teclas en modo menor en Emacs?



keyboard-shortcuts elisp (3)

Así es como lo hago. Aunque podría mejorarse.

(defun get-key-combo (key) "Just return the key combo entered by the user" (interactive "kKey combo: ") key) (defun keymap-unset-key (key keymap) "Remove binding of KEY in a keymap KEY is a string or vector representing a sequence of keystrokes." (interactive (list (call-interactively #''get-key-combo) (completing-read "Which map: " minor-mode-map-alist nil t))) (let ((map (rest (assoc (intern keymap) minor-mode-map-alist)))) (when map (define-key map key nil) (message "%s unbound for %s" key keymap)))) ;; ;; Then use it interativly ;; Or like this: (keymap-unset-key ''[C-M-left] "paredit-mode") .. ..

He asignado globalmente Cc/ to as-jump-mode pero reftex-mode (un modo menor para las citas utilizadas con AucTeX) anula esta tecla con alguna función que nunca uso.

Intenté local-unset-key pero solo desenlaza claves del mapa del modo principal actual.

¿Cómo reftex-mode-map Cc/ from reftex-mode-map sin hacer cambios en reftex.el?


Puede cambiar un mapa de claves existente usando define-key . Al pasar nil como la función a llamar, la clave se desvinculará. Supongo que deberías poder hacer algo como:

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

Por supuesto, debes hacer esto en algún tipo de gancho, por ejemplo:

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


Puedes usar el siguiente comando:

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

para desasignar esta función de Cc / ... Pero se debe cargar reftex-mode-map , de modo que reftex-mode-map estará disponible para su modificación