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ć bklucz 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?
defvarnie oceni ponownie swojej wartości poC-M-x:) Będziesz potrzebowaćdefparameterlub osobnosetf.