Il y a la fonction readline end-of-history, par défaut mappée sur M- >, mais si elle est utilisée pendant la recherche inversée, elle quitte l'invite de recherche inversée.
Une solution / astuce possible
Lancer la recherche de chaînes
Au lieu de cela, pour utiliser la recherche inversée, vous pouvez utiliser history-search-backwardet history-search-forward(par défaut non mappé), en les mappant sur up/down(très utile) dans votre .inputrc:
# up-down arrow to search in history
"\e[A":history-search-backward
"\e[B":history-search-forward
Ainsi, après avoir tapé, vous pouvez inverser la recherche en appuyant sur up
(au lieu de Ctrl+ R), et lorsque vous souhaitez revenir à la fin de l'historique, vous pouvez utiliser la end-of-historyfonction en appuyant sur ( M- >)
De cette façon, "la chaîne de recherche doit correspondre au début d'une ligne d'historique ", donc, si vous recherchez ls -ltr, vous devez taper lspuis appuyer sur la uptouche.
Recherche de sous-chaîne
si vous voulez " La chaîne de recherche peut correspondre n'importe où dans une ligne d'historique ", vous devez utiliser history-substring-search-forward
et history-substring-search-backward:
# up-down arrow to search in history
"\e[A":history-substring-search-backward
"\e[B":history-substring-search-forward
De cette façon, si vous recherchez ls -ltr, vous pouvez taper ls, mais aussi ltr, avant d'appuyer sur up.
Référence: Manuel de référence Bash - Commandes pour l'historique .
historyvous montrera toutes les commandes bash faites ..