Ich benutze einen Modus, bin aber nicht an seine Tastenkombinationen gewöhnt: Einige von ihnen stehen in Konflikt mit den globalen Emacs. Daher möchte ich allen vorhandenen Tastenkombinationen eine Präfix-Schlüsselbindung hinzufügen.
Wenn beispielsweise my-mode die Schlüsselbindung M-]für my-mode-shot definiert , suche ich nach folgenden Möglichkeiten:
(define-prefix-for-mode 'my-mode (kbd "C-c m"))
dann ist die schlüsselbindung für my-mode-shot jetzt C-c m M-].
Wie sollte man allen verfügbaren Schlüsselbindungen eines bestimmten Modus eine Präfix-Schlüsselbindung hinzufügen?
key-bindings
keymap
prefix-keys
象 嘉 道
quelle
quelle
Antworten:
Eine Möglichkeit, die Tastenkombinationen von -mode zu verschieben, könnte so etwas sein
Dieser Code schlägt jedoch fehl, wenn er ausgeführt wird, bevor der foo-Modus ausgeführt wird. Und es hat keine Auswirkung, wenn es ausgeführt wird, nachdem der Modus aufgerufen wurde. Also müssen Sie es wahrscheinlich im `(with-eval-after-load'-Modus ...) tun.
Wenn es sich um einen Nebenmodus handelt, hat der obige Code auch keine Auswirkung, da Sie zusätzlich Folgendes tun müssen (innerhalb des oben genannten
let
):quelle
Angenommen, dieser Modus
foo-mode
bindet den SchlüsselC-x o
anfoo-it
und das gefällt Ihnen nicht.Angenommen, Sie möchten einen
foo-mode-map
Präfixschlüssel verwenden<f9>
:quelle
foo-it
das nicht über verfügbar ist. Dies<f9> C-x o
kann sich selbst zunichte machen, wenn das Ziel darin besteht, die Tastenkombinationen aus dem Weg zu räumen und gleichzeitig über den Präfixschlüssel erreichbar zu bleiben.Sie können die Keymap des Modus direkt ändern, um alle Bindungen unter dem von Ihnen gewählten Präfix zu verschieben:
quelle