Wie springe ich mit STRG + Pfeiltasten in einer Konsole zum nächsten oder vorherigen Wort?

11

In Terminalemulationsanwendungen springt das Drücken von CTRL+ Left/ RightPfeilen von einem Wort zum vorherigen oder nächsten. Ist es möglich, in einer Linux-Konsole dieselbe Funktionalität zu haben, sei es im Text- oder im Framebuffer-Modus?

In meiner Konfiguration werden die CTRLPfeiltasten + in maskierte Zeichenfolgen umgewandelt und nicht interpretiert.

Pedro Palhoto
quelle

Antworten:

8

Dies ist genau dann möglich, wenn das Terminal unterschiedliche Escape-Sequenzen für Ctrl+ Leftvs sendet Left. Dies ist auf der Linux-Konsole standardmäßig nicht der Fall (zumindest auf meinem Computer). Sie können dies tun, indem Sie die Keymap ändern. Die genaue zu ändernde Datei hängt möglicherweise von Ihrer Distribution ab. Auf Debian Lenny ist die zu ändernde Datei /etc/console/boottime.kmap.gz. Sie brauchen Zeilen wie

control keycode 105 = F100
string F100 = "\033O5D"
control keycode 106 = F101
string F101 = "\033O5C"

Sie können auch dieselben Escape-Sequenzen wie Ihren X-Terminal-Emulator auswählen. Um herauszufinden , was die Steuersequenz ist, geben Sie Ctrl+ V Ctrl+ Leftin einer Schale; Dies fügt (auf meinem Computer) ein, ^[O5Dwo ^[sich ein Escape-Zeichen befindet. Stellt in der Keymap-Datei \033ein Escape-Zeichen dar.

Das Konfigurieren der Anwendung im Terminal zum Dekodieren der Escape-Sequenz ist ein separates Problem.

Gilles 'SO - hör auf böse zu sein'
quelle
Sie erklären nur, wie Sie den "\033O5D"Code erhalten haben, lassen jedoch vollständig weg, woher Sie den Code keycode 105und haben F100. Außerdem bekomme ich ^[[1;5Bund ^[[1;5Afür Strg + Runter und Strg + Hoch. Wie soll ich mit dem 1;Teil umgehen ?
Martin Vegter
1
@MartinVegter Überprüfen Sie die vorhandene Datei auf Schlüsselcodes oder verwenden Sie das showkeyProgramm. Der 1;Teil unterscheidet sich nicht vom Rest: "\033[1;5B"und so weiter.
Gilles 'SO - hör auf böse zu sein'
OK das keycode 105kann mit gefunden werden showkey. Aber woher hast du das F100?
Martin Vegter
@MartinVegter Wählen Sie eine aus, die noch nicht verwendet wird. Ein anderer pro Keychord (ich habe gerade einen Tippfehler in meiner Antwort behoben).
Gilles 'SO - hör auf böse zu sein'
24

Emacs-Stil Shortcuts Alt+ f, Alt+ bArbeit standardmäßig mit allen Readline- -gestützte Kommandozeilenprogramme, wie Muscheln.

Alex
quelle
2

Sie können vim als Befehlszeileneditor festlegen und dann ESC drücken und im vim-Stil springen (vorwärts, rückwärts, end, $, 0 usw.).


quelle
-1

Ich hatte dieses Problem auf Debian mit einer leeren ~/.inputrcDatei. Das Problem wurde durch Entfernen dieser Datei behoben.

Talkerbox
quelle