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-backward
e 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-history
funzione 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 ls
e 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 .
history
ti mostrerà tutti i comandi bash effettuati ..