Я почав кодувати другорядний режим, щоб надати деякі клавіші. Моя початкова спроба мала друк:
(define-minor-mode borked-mode
"A mode defined with a broken key binding"
nil nil
'(([b] . 'previous-line)))
Я мав намір скористатися b
ключем і одразу зрозумів, що я повинен був використовувати його "b"
замість [b]
. Тому я переосмислив другорядний режим:
(define-minor-mode borked-mode
"A mode defined with a broken key binding"
nil nil
'(("b" . 'previous-line)))
Однак це не спрацювало. Це підняло мене на погоню за дикими гусками через усі різні способи прив'язки ключів (тобто (kbd ...), [...] тощо). Нарешті я зрозумів, що просто переоцінка (define-minor-mode ...)
форми нічого не змінила, я застряг у оригінальній, зламаній ключовій карті. Потім я спробував змінити мапу клавіатури безпосередньо через (define-key borked-mode-map ...)
і досі не міг завантажити виправлену мапу клавіш. Нарешті я перезапустив Emacs, і мій незначний режим був коректно завантажений.
Моє запитання: як ви оновлюєте визначення другорядного режиму під час його розробки? Чи є спосіб очистити зламане визначення, або вам доведеться перезапустити emacs, щоб очистити зламані біти?
defvar
не буде оцінювати свою цінність знову післяC-M-x
:) Вам знадобитьсяdefparameter
або окремоsetf
.