Zacząłem kodować mniejszy tryb, aby zapewnić kilka skrótów klawiszowych. Moja pierwsza próba miała literówkę:
(define-minor-mode borked-mode
"A mode defined with a broken key binding"
nil nil
'(([b] . 'previous-line)))
Miałem zamiar użyć b
klucz i natychmiast zrozumiał, że powinien użyłem "b"
zamiast [b]
. Dlatego przedefiniowałem tryb drugorzędny:
(define-minor-mode borked-mode
"A mode defined with a broken key binding"
nil nil
'(("b" . 'previous-line)))
Jednak to nie zadziałało. To spowodowało, że zacząłem gonić za dziką gęsią skórką poprzez różne sposoby wiązania kluczy (tj. (Kbd ...), [...] itp.). W końcu zdałem sobie sprawę, że sama ponowna ocena (define-minor-mode ...)
formularza nic nie zmienia, utknąłem z oryginalną, zepsutą mapą klawiszy. Następnie spróbowałem zmienić mapę klawiszy bezpośrednio przez (define-key borked-mode-map ...)
i nadal nie udało mi się załadować poprawionej mapy klawiszy. W końcu zrestartowałem Emacsa i mój mniejszy tryb został poprawnie załadowany.
Moje pytanie brzmi: w jaki sposób aktualizujesz definicję trybu pomocniczego podczas jej opracowywania? Czy jest jakiś sposób, aby opróżnić zepsutą definicję, czy też musisz ponownie uruchomić emacsa, aby usunąć zepsute bity?
defvar
nie oceni ponownie swojej wartości poC-M-x
:) Będziesz potrzebowaćdefparameter
lub osobnosetf
.