Existe a função readline end-of-history
predefinida mapeada para ( M - > ) mas se usada durante a procura inversa, sai da linha de pesquisa inversa.
Uma possível solução alternativa / truque
Iniciar pesquisa de sequência
Em vez de usar a pesquisa inversa, você pode usar history-search-backward
e history-search-forward
(padrão não mapeado) mapeando-os para para cima / para baixo (muito útil) em .inputrc
:
# up-down arrow to search in history
"\e[A":history-search-backward
"\e[B":history-search-forward
Então, depois de ter digitado, você pode inverter a busca pressionando para cima (em vez de Ctrl - r ) e quando quiser retornar ao fim do histórico você pode usar a função de fim de história pressionando ( M - > )
Desta forma "A string de busca deve coincidir no início de uma linha de histórico " então se você procurar por ls -ltr
você tem que digitar ls e então pressionar para cima chave.
Pesquisa de subcadeia
se você quiser " A seqüência de pesquisa pode corresponder em qualquer lugar da linha do histórico " você tem que usar history-substr-search-forward
e history-substr-search-backward
:
# up-down arrow to search in history
"\e[A":history-substr-search-backward
"\e[B":history-substr-search-forward
Desta forma, se você procurar por ls -ltr
, você pode digitar ls, mas também ltr before para subir .