J'ai commencé à coder un mode mineur pour fournir des raccourcis clavier. Ma tentative initiale avait une faute de frappe:
(define-minor-mode borked-mode
"A mode defined with a broken key binding"
nil nil
'(([b] . 'previous-line)))
J'avais l'intention d'utiliser la b
clé et j'ai immédiatement réalisé que j'aurais dû utiliser à la "b"
place de [b]
. J'ai donc redéfini le mode mineur:
(define-minor-mode borked-mode
"A mode defined with a broken key binding"
nil nil
'(("b" . 'previous-line)))
Cependant, cela n'a pas fonctionné. Cela m'a lancé sur une chasse aux oies sauvages à travers toutes les différentes façons de lier les clés (c'est-à-dire, (kbd ...), [...], etc.). Finalement, je me suis rendu compte que la simple réévaluation du (define-minor-mode ...)
formulaire ne changeait rien, j'étais coincé avec la carte des touches originale et cassée. J'ai ensuite essayé de changer le clavier directement via (define-key borked-mode-map ...)
et je n'ai toujours pas pu charger le clavier corrigé. Enfin, j'ai redémarré Emacs et mon mode mineur était correctement chargé.
Ma question est: comment mettre à jour une définition de mode mineur pendant que vous la développez? Existe-t-il un moyen de vider une définition cassée, ou devez-vous redémarrer emacs pour effacer les bits cassés?
defvar
n'évaluera pas sa valeur à nouveau aprèsC-M-x
:) Vous auriez besoindefparameter
ou d'un séparésetf
.