revenir à la fin de l'historique de bash lors de l'utilisation de la recherche inversée?

12

Je garde un historique bash assez long et parfois lorsque je recherche quelque chose avec la fonction de recherche inversée bash ( Ctrl+ r) je me retrouve au début de l'historique de recherche et je n'ai toujours pas trouvé ce dont j'avais besoin et je voudrais revenir à la fin du fichier historique. Une option consiste à utiliser la fonction de recherche directe ( Ctrl+ s) qui se rapproche de la fin de l'historique ou à exécuter #, mais existe-t-il également un raccourci clavier pour passer directement à la fin de l'historique de bash?

Martin
la source
2
historyvous montrera toutes les commandes bash faites ..
ryekayo

Réponses:

6

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 .

lgaggini
la source