Kurz gesagt, es gibt eine kleine Bibliothek, die ich mag, aber ich mag keine der Standard-Tastenkombinationen. ZB ist es ein globaler Nebenmodus und bindet eine Funktion an C-c C-s
, aber diese Schatten org-schedule
in meinen Organisations- und Organisationsagenda-Puffern.
Ich möchte die kleine Bibliothek behalten, aber alle Bindungen in der Keymap der kleinen Bibliothek entfernen.
In einem frühen Versuch, dies zu tun, habe ich Folgendes versucht (nachdem ich bestätigt hatte, dass little-library-mode-map
dort die Bindungen leben):
(with-eval-after-load "little-library-mode"
(setq little-library-mode-map (make-sparse-keymap)))
Der Code "ist erfolgreich" ( C-h v little-library-mode-map RET
zeigt, dass es gerade erst ist (keymap)
), aber alle kleinen Bibliotheksschlüsselbindungen "funktionieren" C-c C-s
immer noch (funktioniert immer noch die kleine Bibliotheksfunktion, einschließlich in den Puffern "org" und "org-Agenda").
Ich habe einen anderen Weg gefunden, um mein Problem zu lösen, bin aber sehr gespannt, warum dieser Ansatz fehlschlägt. Emacs 'Tastenkombinationen erscheinen mir immer noch wie schwarze Magie.
quelle
(setcdr little-library-mode-map nil)
.Antworten:
In dieser Geschichte gibt es drei wichtige Dinge:
Grundsätzlich haben Sie den Namen anstelle des Originals auf die spärliche Keymap gesetzt, aber es ist zu spät: Im Nebenmodus wird das Original verwendet.
quelle
minor-mode-map-alist
.Irgendwann beim Aktivieren
little-library-mode
der in der Variablen gespeicherten Keymap wird Folgendeslittle-library-mode-map
hinzugefügtminor-mode-map-alist
:Emacs verwendet diese Liste, um Bindungen im Nebenmodus zu suchen. Wenn Sie die Variable anschließend
little-library-mode-map
an einen neuen Wert binden, hat dies keine Auswirkung auf die Keymap-minor-mode-map-alist
Punkte, auf die verwiesen wird . Wie im Kommentar von @wasamasa erwähnt, besteht eine Möglichkeit, alle Bindungen in dieser Keymap zu entfernen, darin, die Keymap direkt zu mutieren:Eine andere Möglichkeit besteht darin, die Keymap vor dem Laden der Bibliothek zurückzusetzen:
Wenn sich der Moll-Modus gut verhält, wird dadurch auch vermieden, dass seine Bindungen instanziiert werden.
quelle