Wenn ich einen Emacs-Befehlsnamen kenne, sagt "goto-line"; Was ist, wenn ich abfragen möchte, ob an diesen Befehl Tastenfolgen gebunden sind?
Und umgekehrt, wie kann ich bei einer bestimmten Tastenfolge den Befehlsnamen finden?
Um nur Tastenkombinationen für einen Befehl zu finden, können Sie die "where-is" -Funktion der emacs-Hilfe verwenden
C-h w command-name
Wenn für den Befehl mehrere Bindungen festgelegt sind, werden alle aufgelistet.
Für die Umkehrung können Sie bei gegebener Tastenfolge eingeben
C-h k key-sequence
Um den Befehl zu erhalten, der ausgeführt werden würde.
Durch Eingabe erhalten Sie detaillierte Informationen zu einem Befehl sowie zu allen nicht interaktiven Funktionen
C-h f function-name
Hier erhalten Sie detaillierte Informationen zu einer Funktion, einschließlich etwaiger Tastenkombinationen
C-h v variable-name
gibt Ihnen Informationen zu jeder (gebundenen) Variablen. Key-Maps werden in Variablen gespeichert, die Key-Codes werden jedoch in einem Rohformat gespeichert. Versuchen Sie es C-h v isearch-mode-map
mit einem Beispiel.
Weitere Hilfe zum Abrufen von Hilfe können Sie eingeben
C-h ?
C-h w <function name>
wissen, wo sich der Schlüssel befindet, nicht die vollständige Dokumentation. Umgekehrt können Sie auchC-h c <key sequence>
nur wissen, welche Funktion an eine Tastenfolge gebunden ist.C-h
in ihren Fenstermanagern an etwas anderes gebunden sind:C-h w
ist gleichbedeutend mitM-x where-is
.C-h k
ist äquivalent zuM-x describe-key
.C-h f
ist äquivalent zuM-x describe-function
.C-h v
ist äquivalent zuM-x describe-variable
.C-h ?
ist äquivalent zuM-x help-for-help
. Beachten Sie auch, dassf1
anstelle von verwendet werden kannC-h
.C-h w
(oderF1-w
):where-is
RET einen Befehlsnamen RETTut genau das, was Sie verlangen - listet gebundene Schlüssel ohne zusätzliche Informationen auf. :) :)
quelle
Informationen zum interaktiven Binden des Befehls an eine Tastenkombination (oder eine Tastenfolge in Emacs-Begriffen) finden Sie in der ausgewählten Antwort.
Verwenden Sie die Funktion
key-binding
oderlookup-key
, die eine Tastenfolge verwendet und den gebundenen Befehl zurückgibt , um den Befehl programmgesteuert an eine bestimmte Tastenfolge zu binden. Die Funktionkey-binding
wirdC-h k
verwendet.Gibt den Befehl zurück, an den gebunden ist,
C-h m
indem in allen aktuellen Keymaps gesucht wird. Die Funktionlookup-key
sucht in einer einzigen Keymap:Es
where-is-internal
ist wahrscheinlich die zu verwendende Funktion, um programmgesteuert alle Tastenfolgen an einen bestimmten Befehl zu binden . Der Name der Funktion, die mit endet,internal
scheint darauf hinzudeuten, dass Emacs-Benutzer sie nicht in ihren Init-Dateien verwenden können, aber diese Funktion mit einer Dokumentzeichenfolge scheint etwas anderes vorzuschlagen. Jeder, der die Verwendung von in Betracht zieht,where-is-internal
sollte zuerst prüfen, ob die Neuzuordnung von Schlüsseln stattdessen sein Ziel erreichen kann.Eine Alternative zum Finden der Schlüssel, die an einen bestimmten Befehl gebunden
forward-char
sindsubstitute-command-keys
(z(substitute-command-keys "\\[forward-char]")
. B. ), ist (z . B. ). Das ist besonders nützlich in größeren Texten.quelle
where-is-internal
ansehen, ist dies in Ordnung. Herkömmlicherweise verwenden wir auch ein Format wiewhere-is--internal
(beachten Sie den doppelten Bindestrich) für "private" Funktionen.-internal
wird dort beschrieben: gnu.org/software/emacs/manual/html_node/elisp/… . Es sollte für interne C-Funktionen verwendet werden.Eine alte Frage, aber zum Nutzen neuer Leser gibt es einige andere schöne Möglichkeiten, Tastenkombinationen zu erkennen
M-x describe-bindings
Listet alle derzeit verfügbaren Bindungen auf, verwendet isearch, tritt auf usw., um diese Liste gut zu nutzen.
M-x describe-prefix-map
Hier werden alle im aktuellen Modus verfügbaren Bindungen angezeigt. Sie können den Anzeigepuffer wie jeden anderen schreibgeschützten Emacs-Puffer verwenden, z. B. können Sie frei nach Zeichenfolgen usw. suchen.
M-x describe-mode
Sie erhalten nicht nur allgemeine Informationen zum aktuellen Modus, sondern auch alle verfügbaren Tastenkombinationen.
M-x describe-minor-mode
Sie werden aufgefordert, den Namen eines Nebenmodus einzugeben, und es werden Informationen und Tastenkombinationen für diesen Nebenmodus angezeigt.
HINWEIS : In den folgenden Beispielen werden zusätzliche Pakete verwendet (erhältlich bei MELPA ).
Welcher Schlüssel
Dies zeigt Ihnen Bindungen, kurz bevor Sie sie benötigen. Geben Sie ein Präfix ein, zum Beispiel
C-x
oderC-c
und eine Liste der in diesem Präfix verfügbaren Bindungen wird angezeigt.Sie können auch eine Liste der im aktuellen Modus verfügbaren Tastenkombinationen anzeigen, indem Sie Folgendes verwenden:
M-x which-key-show-top-level
Es ist nützlich zu binden
which-key-show-top-level
an einen Tastenakkord Ihrer Wahl , damit Sie die verfügbaren Tasten von überall aus anzeigen können.Zum Beispiel hat
C-s
(isearch-forward
) eine umfangreiche Key Map, die oft unbekannt ist. zBM-s o
beginnt dieoccur
Verwendung der aktuellen Suchzeichenfolge, ich wusste über viele Jahre der Verwendung von Emacs nichts davon. Das Herumkommenwhich-key
hat mir geholfen, viele seltene Edelsteine in Emacs zu entdecken.https://github.com/justbur/emacs-which-key
Führungsschlüssel
Die Führungstaste funktioniert ähnlich wie
which-key
ich es empfehlen würde, sie sich anzusehen, um die Funktionen zu vergleichen.https://github.com/kai2nenobu/guide-key
quelle