Zur letzten Eingabeaufforderung im Terminal (oder tmux) springen

8

Gibt es in einem Terminal Verknüpfungen, um zu einer vorherigen / nächsten Eingabeaufforderung zu springen? Das Scrollen nach oben und der Versuch, den Anfang eines Protokolls zu finden, verlangsamt meinen Workflow.

Ich verwende iTerm unter OSX, dies sollte jedoch für alle Unix-Terminals gelten. Eine Lösung in Tmux würde ebenfalls helfen.

domi91c
quelle
Wenn Ihr Hostname in Ihrer Eingabeaufforderung steht, können Sie die Suche umkehren, um auf diese Weise zurückzufahren ...
Jasonwryan
Rohr zu less.
Kusalananda

Antworten:

4

In tmux v2.4 + ( relevantes Commit ) können Sie eine Bindung definieren, um mit akzeptabler Zuverlässigkeit zu den letzten Eingabeaufforderungen zu springen:

bind-key b copy-mode\;\
           send-keys -X start-of-line\;\
           send-keys -X search-backward " "

Wenn dies " "ein nicht unterbrechendes Leerzeichen ist und eine entsprechende Änderung vorgenommen wird, damit Ihre Shell-Eingabeaufforderung es enthält ( $PS1oder $PROMPT_COMMANDin Bash).

Es kann besondere Sorgfalt erfordern, es in der Shell-Eingabeaufforderung und in der tmux-Konfiguration festzulegen, da es beim Kopieren und Einfügen in normalen Speicherplatz geändert werden kann (siehe Methode mit vim in den Kommentaren).

Alternativ können Sie Ihr bevorzugtes alternatives Unicode-Leerzeichen oder alles versuchen, was in Befehlsausgaben selten vorkommt und das Sie in Ihrer Eingabeaufforderung sehen möchten (🍌?).

Dies kann auch eine Kombination mehrerer Zeichen für noch weniger Fehlalarme sein. Es ist jedoch wahrscheinlich besser, am Ende der Eingabeaufforderung etwas auszuwählen, um die Navigation zu vereinfachen.

Gutschrift :

lbonn
quelle
1
Durch Ausschneiden und Einfügen würde der nicht unterbrechende Leerzeichencharakter nicht für mich funktionieren, aber ich konnte ihn mit Vim zum Laufen bringen. Verwenden Sie CTRL-k <space><space>im Einfügemodus, um den nicht unterbrechenden Bereich einzufügen. Nach den Wörtern gibt der gaBefehl im normalen Modus den ASCII-Wert des Zeichens unter dem Cursor aus, mit dem bestätigt werden kann, dass sich dieses Zeichen von anderen Leerzeichen unterscheidet.
Robenkleene
0

Wenn Sie lessden Inhalt der Protokolldatei anzuzeigen, haben Sie die Möglichkeit blättern hin und her der Verwendung Spaceund bTasten (das siehe lessHandbuch). Sie können auch Suchen in der Ausgabe mit /(und ?für die Rückwärtssuche) durchführen.

Um die Ausgabe eines Programms in anzuzeigen less, leiten Sie die Ausgabe einfach an das Programm weiter :

$ ./myprogram | less

So speichern Sie die Ausgabe zusätzlich in einer Datei:

$ ./myprogram | tee myprogram.out | less

Wenn Sie Fbeim Lesen einer Datei, in die geschrieben wird, auf drücken , lessverhält es sich wie folgt tail -f. Um dies zu unterbrechen, drücken Sie Ctrl+ c.

Kusalananda
quelle