Existe a função readline end-of-history
, por padrão mapeada para M- >, mas se usada durante a pesquisa reversa, ela sai do prompt de pesquisa reversa.
Uma possível solução / truque
Iniciar pesquisa de string
Em vez disso, para usar a pesquisa reversa, você pode usar history-search-backward
e history-search-forward
(padrão não mapeado), mapeando-os para up/down(muito útil) em .inputrc
:
# up-down arrow to search in history
"\e[A":history-search-backward
"\e[B":history-search-forward
Assim, depois de digitar, você pode inverter a pesquisa pressionando up
(em vez de Ctrl+ R) e, quando quiser retornar ao final do histórico, poderá usar a end-of-history
função pressionando ( M- >)
Dessa forma, "A cadeia de pesquisa deve corresponder no início de uma linha do histórico ", portanto, se você pesquisar ls -ltr
, precisará digitar ls
e pressionar a uptecla.
Pesquisa por substring
se você deseja " A sequência de pesquisa pode corresponder a qualquer lugar da linha do histórico " , é necessário usar 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
Dessa forma, se você pesquisar ls -ltr
, poderá digitar ls
, mas também ltr
, antes de pressionar up.
Referência: Manual de Referência do Bash - Comandos para o Histórico .
history
irá mostrar-lhe todos os comandos bash feitos ..