(reverse-i-search) dans Bash


26

Je finis généralement par utiliser CTRL+ rpour (reverse-i-search), cependant, parfois je passe la commande que je cherchais; si je recommence, (reverse-i-search)il ne le trouve plus. Je suppose que le pointeur actuel sur l'historique des commandes est avant la commande que je recherche.

Quelqu'un sait-il comment revenir à la commande la plus récente de l'histoire sans avoir à cliquer 1000 fois sur down arrow?


1
La recherche inversée est une fonctionnalité de bash (et des bibliothèques readline), j'ai donc édité le titre et questionné un peu pour refléter cela.
Doug Harris

si vous dépassez la commande que vous vouliez, faites- CTRL+SHIFT+Ry revenir
Ricky Robinson

Réponses:


7

Il y a une question similaire sur stackoverflow.com .

La meilleure réponse consiste Ctrl+Gà annuler la recherche en cours.


Ce n'est vraiment pas la meilleure réponse. La meilleure réponse est celle donnée par Dennis Williamson: ajoutez stty -ixonvotre .bashrc(ou dans un autre fichier de configuration correspondant), puis Ctrl-Savancez dans l'histoire, de la même manière que les Ctrl-Gétapes en arrière. Ctrl-SAppuyez sur la première touche après avoir Ctrl-Gchangé reverse-i-searchpour i-search, la suivante Ctrl-Sfait le premier pas en avant. Ensuite, chacun Ctrl-Sfait un pas de plus.
nrz

ou si vous avez déjà terminé la recherche (par exemple en appuyant sur esc ou sur une touche fléchée), vous pouvez
appuyer

38

En fait, une autre réponse à cette question donne une meilleure option.

Dans votre, ~/.bashrcajoutez la ligne suivante:

stty -ixon

Ensuite, vous pouvez utiliser Ctrl- spour avancer dans l'historique de la même manière que vous le feriez Ctrl- rpour reculer.

Cela fonctionnera même pour démarrer une nouvelle recherche vers l'avant (appelée i-searchpar opposition à reverse-i-search) tout en parcourant l'historique. Supposons que vous le fassiez Ctrl- ret tapez du texte d'une commande près de votre destination, puis appuyez plusieurs fois sur la flèche vers le haut en dépassant ce que vous cherchiez vraiment (ou vous changez d'avis). Appuyez maintenant sur Ctrl- set tapez quelques caractères de cette ligne. Zoooom! Directement.


2
quelle est l'implication de stty -ixon? cela désactive-t-il quelque chose qui pourrait être nécessaire dans d'autres situations?
Gregory Pakosz

7
@GregoryPakosz: Il désactive XON / XOFF ( contrôle de flux logiciel ), ce qui est inutile depuis le clavier maintenant que nous communiquons à un débit un peu plus élevé que 300 bauds.
pause jusqu'à nouvel ordre.

merci, googlé pendant un certain temps et est arrivé à la même conclusion, c'est surtout inutile de nos jours
Gregory Pakosz
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.