tornare alla fine della storia bash quando si utilizza la ricerca inversa?


12

Conservo una storia bash abbastanza lunga ea volte quando cerco qualcosa con la funzione di ricerca inversa bash ( Ctrl+ r) finisco all'inizio della cronologia delle ricerche e ancora non trovo ciò di cui ho bisogno e quindi vorrei tornare indietro alla fine del file cronologico. Un'opzione è utilizzare la funzione di ricerca in avanti ( Ctrl+ s) che si avvicina alla fine della cronologia o esegue #, ma esiste anche una scorciatoia da tastiera per spostarsi direttamente alla fine della cronologia di Bash?


2
historyti mostrerà tutti i comandi bash effettuati ..
ryekayo,

Risposte:


6

Esiste la funzione readline end-of-history, per impostazione predefinita mappata su M- >, ma se usata durante la ricerca inversa esce dal prompt di ricerca inversa.

Una possibile soluzione / trucco

Inizia la ricerca di stringhe

Invece, per usare la ricerca inversa, puoi usare history-search-backwarde history-search-forward(default non mappato), mappandoli su up/down(molto utili) nel tuo .inputrc:

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

Quindi, dopo aver digitato, è possibile invertire la ricerca premendo up (anziché Ctrl+ R) e quando si desidera tornare alla fine della cronologia, è possibile utilizzare la end-of-historyfunzione premendo ( M- >)

In questo modo "La stringa di ricerca deve corrispondere all'inizio di una riga della cronologia ", quindi, se si cerca ls -ltr, è necessario digitare lse quindi premere il  uptasto.

Ricerca sottostringa

se vuoi " La stringa di ricerca può corrispondere ovunque in una riga della cronologia " devi usare history-substring-search-forward e history-substring-search-backward:

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

In questo modo, se si cerca ls -ltr, è possibile digitare ls, ma anche ltr, prima di premere up.

Riferimento: Manuale di riferimento di Bash - Comandi per la storia .

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.