Zurück zum Ende des Bash-Verlaufs gehen, wenn Sie die umgekehrte Suche verwenden?

11

Ich habe einen ziemlich langen Bash-Verlauf und manchmal, wenn ich nach etwas mit der Bash-Umkehrsuchfunktion ( Ctrl+ r) suche, lande ich am Anfang des Suchverlaufs und habe immer noch nicht gefunden, was ich brauchte, und möchte dann zum Ende zurückkehren der Verlaufsdatei. Eine Möglichkeit besteht darin, die Vorwärtssuchfunktion ( Ctrl+ s) zu verwenden, die sich dem Ende des Verlaufs nähert oder ausgeführt #wird. Gibt es jedoch auch eine Tastenkombination, um direkt zum Ende des Bash-Verlaufs zu gelangen?

Martin
quelle
2
historyzeigt Ihnen alle Bash-Befehle ..
Ryekayo

Antworten:

5

Es gibt die Readline-Funktion end-of-history, die standardmäßig M- zugeordnet >ist. Wenn sie jedoch während der Rückwärtssuche verwendet wird, wird die Rückwärtssuchaufforderung beendet.

Eine mögliche Problemumgehung / Trick

Starten Sie die Zeichenfolgensuche

Um die umgekehrte Suche zu verwenden, können Sie stattdessen history-search-backwardund history-search-forward(standardmäßig nicht zugeordnet) verwenden, um sie up/down(sehr nützlich) in Ihrem Ordner zuzuordnen .inputrc:

# up-down arrow to search in history
"\e[A":history-search-backward
"\e[B":history-search-forward

Nachdem Sie eingegeben haben, können Sie das Drücken der Suche umkehren up (anstelle von Ctrl+ R). Wenn Sie zum Ende des Verlaufs zurückkehren möchten, können Sie die end-of-historyFunktion verwenden, indem Sie ( M- >) drücken.

Auf diese Weise "Die Suchzeichenfolge muss am Anfang einer Verlaufszeile übereinstimmen ". Wenn Sie also nach suchen ls -ltr, müssen Sie eingeben lsund dann die  upTaste drücken.

Teilstringsuche

wenn Sie wollen „ Der Suchbegriff kann irgendwo in einer Geschichte Linie entsprechen, “ Sie haben zu verwenden , history-substring-search-forward und history-substring-search-backward:

# up-down arrow to search in history
"\e[A":history-substring-search-backward
"\e[B":history-substring-search-forward

Auf diese Weise können Sie bei der Suche ls -ltreingeben ls, aber auch ltr, bevor Sie drücken up.

Referenz: Bash-Referenzhandbuch - Befehle für den Verlauf .

lgaggini
quelle