Wie kann ich in der Hilfe nach einer Tastenfolge suchen, die ich nicht eingeben kann?

8

Ich weiß, dass ich mithilfe von Hilfe nach einer Tastenfolge suchen kann C-h k <key sequence>, aber ich verwende Emacs im Terminal, und mein Terminalemulator leitet nicht alle Tastenfolgen an Emacs weiter. Manchmal sehe ich die Notation für eine bestimmte Tastenfolge irgendwo ohne Erklärung geschrieben, und ich möchte nachschlagen, was sie tut, aber ich kann sie nicht einmal eingeben. Gibt es ein Äquivalent dazu, C-h kwo ich nur die Tastenfolge eingeben kann (wie wörtlich C-<character>)?

asmeurer
quelle

Antworten:

15

Bewerten Sie Folgendes mit eval-expression( M-:) oder in einem Arbeitspuffer:

(describe-key (kbd "C-<whatever>"))
shosti
quelle
1
Diese Lösung finden Sie übrigens mit C-h k C-h k. (Arbeitet in meinem Terminal.)
Kevin
1
Großartig. Es ist eigentlich besser, M-: zu verwenden oder es in Ihrem aktuellen Puffer auszuwerten, da die Tastenkombination möglicherweise modusspezifisch ist.
Asmeurer
9

Wenn Sie eine bestimmte Tastenkombination aufgrund Ihres Terminals nicht verwenden können, können Sie sie häufig fälschen, indem Sie den Tastenmodifikator manuell simulieren. Die folgenden Kombinationen funktionieren genau so, als hätten Sie den entsprechenden Modifikatorschlüssel verwendet:

C-x @ a     alt
C-x @ m     meta
C-x @ c     control
C-x @ h     hyper
C-x @ s     super (lowercase s)
C-x @ S     shift (uppercase S)

Wenn Sie beispielsweise C-aaus irgendeinem Grund nicht tippen können , C-x @ c aist dies dasselbe. Wenn S-<return>es an Ihrem Terminal nicht funktioniert, C-x @ S RETwird. Diese Tastenkombinationen funktionieren auch mit dem C-h kHilfepräfix.

Sue D. Nymme
quelle
Gibt es Fälle, in denen Sie tippen können, C-xaber nicht C-a? All dies erfordert die Fähigkeit zur Ausgabe C-x. Die Möglichkeit, "Hyper" - oder "Super" -Modifikatoren ohne einen dedizierten Schlüssel zu verwenden, scheint nützlich zu sein. Ich bin auf ein Terminal gestoßen, das nicht eingerichtet war, um den "Alt" -Schlüssel "Meta" zuzuordnen, aber ich habe es (widerwillig) mit "ESC"
umgangen
2
C-aist ein schlechtes Beispiel. Eine wahrscheinlichere wäre C-A(oder C-S-a), da Terminals Control + Shift nicht zu mögen scheinen.
Asmeurer
Ich scheine mich daran zu erinnern, dass unter screen(1), C-abefohlen wird, eine Art Multiplexschlüssel zu sein. Aber ich habe es screenschon lange nicht mehr benutzt , also könnte ich mich falsch erinnern.
Sue D. Nymme
2

Sie können auch C-h balle Tastenkombinationen anzeigen, einschließlich Maustasten und allem anderen.

Shapr
quelle
Nachdem das describe-bindingsHilfefenster geöffnet wurde, können Sie auch isearchnach der Klartextdarstellung einer Tastenfolge und der Funktion suchen, an die sie gebunden ist. Mit dem Paket helm-descbindingskönnen Sie auch durch alle Bindungen in einem Steuerpuffer navigieren.
Nispio
0

Mir war keine dieser spezifischeren Lösungen bekannt, und sie funktionieren wahrscheinlich besser, wenn Sie den genauen Befehl wünschen, der von einem Schlüssel ausgeführt wird.

Für einen allgemeineren Tipp zum Finden von Hilfe, wenn Sie tatsächlich eine vage Vorstellung davon haben, was die Schlüsselbindung bewirkt, aber weitere Details wünschen, habe ich C-h f(oder describe-function) mit Tab-Vervollständigung verwendet, um zu versuchen, die zu finden Name der Funktion, die häufig funktioniert, und die Hilfe zeigt Ihnen an, ob diese Funktion eine Bindung hat. Und wenn das nicht funktioniert hat, habe ich einige Begriffe verwendet C-h a(oder apropos-command) eingegeben, von denen ich dachte, dass sie verwandt sind, und überraschenderweise hatte ich viel Erfolg damit, den richtigen Befehl für die Schlüsselbindung zu finden. Eine weitere gute Option ist C-h m(oder describe-mode) und sehen Sie sich alle Tastenkombinationen für den aktuellen Modus an. Dies kann auch als hilfreicher Begriff für eine oder die beiden vorherigen Suchtechniken verwendet werden.

b4hand
quelle