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-mapmit 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-hin ihren Fenstermanagern an etwas anderes gebunden sind: C-h wist gleichbedeutend mit M-x where-is. C-h kist äquivalent zu M-x describe-key. C-h fist äquivalent zu M-x describe-function. C-h vist äquivalent zu M-x describe-variable. C-h ?ist äquivalent zu M-x help-for-help. Beachten Sie auch, dass f1anstelle 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-bindingoder 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-bindingwird C-h kverwendet.
(key-binding (kbd "C-h m"))
Gibt den Befehl zurück, an den gebunden ist, C-h mindem in allen aktuellen Keymaps gesucht wird. Die Funktion lookup-keysucht 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-internalist wahrscheinlich die zu verwendende Funktion, um programmgesteuert alle Tastenfolgen an einen bestimmten Befehl zu binden . Der Name der Funktion, die mit endet, internalscheint 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-charsind substitute-command-keys(z (substitute-command-keys "\\[forward-char]"). B. ), ist (z . B. ). Das ist besonders nützlich in größeren Texten.
where-is-internalansehen, ist dies in Ordnung. Herkömmlicherweise verwenden wir auch ein Format wie where-is--internal(beachten Sie den doppelten Bindestrich) für "private" Funktionen.
-internalwird 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-bindingsListet alle derzeit verfügbaren Bindungen auf, verwendet isearch, tritt auf usw., um diese Liste gut zu nutzen.
M-x describe-prefix-mapHier 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-modeSie erhalten nicht nur allgemeine Informationen zum aktuellen Modus, sondern auch alle verfügbaren Tastenkombinationen.
M-x describe-minor-modeSie 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-xoderC-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-levelEs 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 obeginnt die occurVerwendung der aktuellen Suchzeichenfolge, ich wusste über viele Jahre der Verwendung von Emacs nichts davon. Das Herumkommen which-keyhat mir geholfen, viele seltene Edelsteine in Emacs zu entdecken.
https://github.com/justbur/emacs-which-key
Die Führungstaste funktioniert ähnlich wie which-keyich es empfehlen würde, sie sich anzusehen, um die Funktionen zu vergleichen.