Antworten:
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 auch C-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 mit M-x where-is
. C-h k
ist äquivalent zu M-x describe-key
. C-h f
ist äquivalent zu M-x describe-function
. C-h v
ist äquivalent zu M-x describe-variable
. C-h ?
ist äquivalent zu M-x help-for-help
. Beachten Sie auch, dass f1
anstelle von verwendet werden kann C-h
.
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
oder lookup-key
, die eine Tastenfolge verwendet und den gebundenen Befehl zurückgibt , um den Befehl programmgesteuert an eine bestimmte Tastenfolge zu binden. Die Funktion key-binding
wird C-h k
verwendet.
(key-binding (kbd "C-h m"))
Gibt den Befehl zurück, an den gebunden ist, C-h m
indem in allen aktuellen Keymaps gesucht wird. Die Funktion lookup-key
sucht in einer einzigen Keymap:
(lookup-key (current-global-map) (kbd "TAB")) ; => indent-for-tab-command
(lookup-key org-mode-map (kbd "TAB")) ; => org-cycle
(lookup-key text-mode-map (kbd "TAB")) ; => nil
(lookup-key isearch-mode-map (kbd "TAB")) ; => isearch-printing-char
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
sind substitute-command-keys
(z (substitute-command-keys "\\[forward-char]")
. B. ), ist (z . B. ). Das ist besonders nützlich in größeren Texten.
where-is-internal
ansehen, ist dies in Ordnung. Herkömmlicherweise verwenden wir auch ein Format wie where-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 ).
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. zB M-s o
beginnt die occur
Verwendung der aktuellen Suchzeichenfolge, ich wusste über viele Jahre der Verwendung von Emacs nichts davon. Das Herumkommen which-key
hat mir geholfen, viele seltene Edelsteine in Emacs zu entdecken.
https://github.com/justbur/emacs-which-key
Die Führungstaste funktioniert ähnlich wie which-key
ich es empfehlen würde, sie sich anzusehen, um die Funktionen zu vergleichen.