Comencé a codificar un modo menor para proporcionar algunas combinaciones de teclas. Mi intento inicial tuvo un error tipográfico:
(define-minor-mode borked-mode
"A mode defined with a broken key binding"
nil nil
'(([b] . 'previous-line)))
Tenía la intención de usar la b
llave e inmediatamente me di cuenta de que debería haberlo usado en "b"
lugar de hacerlo [b]
. Así que redefiní el modo menor:
(define-minor-mode borked-mode
"A mode defined with a broken key binding"
nil nil
'(("b" . 'previous-line)))
Sin embargo, esto no funcionó. Esto me puso en una persecución salvaje a través de todas las diversas formas de vincular teclas (es decir, (kbd ...), [...], etc.). Finalmente me di cuenta de que simplemente reevaluar el (define-minor-mode ...)
formulario no estaba cambiando nada, me quedé atrapado con el mapa de teclas roto original. Luego intenté cambiar el mapa de teclas directamente a través de (define-key borked-mode-map ...)
y todavía no pude cargar el mapa de teclas corregido. Finalmente reinicié Emacs, y mi modo menor se cargó correctamente.
Mi pregunta es: ¿cómo actualiza una definición de modo menor a medida que la desarrolla? ¿Hay alguna forma de vaciar una definición rota, o tienes que reiniciar emacs para borrar los bits rotos?
defvar
no evaluará su valor nuevamente después deC-M-x
:) Necesitaríasdefparameter
o por separadosetf
.