48 Stimmen

Können Terminals <Shift-Enter> oder <Control-Enter> erkennen?

Ist es möglich, dass das Terminal Folgendes erkennt Shift + Enter o Ctrl + Enter Tastendrucke?

Ich versuche, vim so zu konfigurieren, dass er Tastenzuweisungen vornimmt, die diese Sequenzen verwenden, und während sie in gvim gut funktionieren, scheinen sie in keiner Terminalkonsole zu funktionieren.

Das Kuriose daran ist, dass, obwohl Ctrl + Enter wird in vim nicht erkannt, die Abbildung Enter a Esc Karten richtig, aber dann drückt man Ctrl + Enter verhält sich wie Enter ¡!

0 Stimmen

Verwenden Sie den vim oder vi im Terminal?

47voto

Nicolas Wu Punkte 4527

Einige Terminals senden <NL> wenn <C-Enter> gedrückt wird. Dies ist gleichbedeutend mit dem Senden von <C-J> .

Um herauszufinden, was Ihr Terminal mit <Shift-Enter> , <Ctrl-Enter> y <Enter> gehen Sie zu Ihrem Terminal und geben Sie <Ctrl-V> (ähnlich dem Vorschlag von sykora für vim), und geben Sie die gewünschte Sequenz ein.

Wenn ich gnome-terminal verwende, erhalte ich das folgende Ergebnis:

  <Enter> : ^M
<S-Enter> : ^M
<C-Enter> : <NL>

Blick auf man ascii zeigt an, dass ^M gibt die <CR> Reihenfolge.

Die Antwort ist, dass dies vom Terminal abhängt, und es gibt eine einfache Möglichkeit, dies zu überprüfen.

21voto

sykora Punkte 88704

Gvim verfügt über einen eigenen Manager für die Verarbeitung von Tastatureingaben und kann daher alle verschiedenen Tastenkombinationen erfassen. Vim ist auf das spezifische Terminal angewiesen, um den jeweiligen Tastendruck weiterzugeben, so dass die Tastenbehandlung nur so gut oder vielfältig ist, wie das Terminal ist.

Eine Möglichkeit, herauszufinden, ob Sie das tun können, was Sie tun wollen, ist die Verwendung der Taste, um herauszufinden, was eingefügt wird. z.B. Tippen:

:<C-V><C-Enter>

d.h. geben Sie die Kombination ein, die Sie drücken möchten, nachdem Sie die Kombination Control-V eingegeben haben. Danach machen Sie das Gleiche für Enter, d.h.

:<C-V><Enter>

Wenn sie denselben Code ergeben, interpretiert das Terminal beide Tastenkombinationen als denselben Tastencode, und Sie können sie nicht verbinden, ohne das Terminal zu manipulieren.

In meinem Terminal (urxvt) erzeugen Control-Enter, Shift-Enter und Enter (allein) alle das Zeichen ^M, d.h. ich kann das eine nicht zuordnen, ohne das andere zuzuordnen. Das Gleiche gilt für Control-Tab und Control-I sowie Control-Space und Control-@

EDIT: Verwenden Sie C-Q anstelle von C-V für Windows.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X