Я начал кодировать второстепенный режим, чтобы обеспечить некоторые сочетания клавиш. Моя первая попытка была опечатка:
(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
.