143 votes

Comment effectuer une recherche inversée avant et arrière?

J'utilise souvent reverse-i-search, et c'est cool. Parfois cependant, en appuyant plusieurs fois sur CTRL+r, je passe la commande que je recherche réellement. Parce que CTRL+r recherche en arrière dans l'historique, du plus récent au plus ancien, je dois :

  1. annuler,
  2. rechercher à nouveau et
  3. m'arrêter exactement à la commande, sans la dépasser.

Alors que je suis dans le prompt reverse-i-search, est-il possible de rechercher vers l'avant, c'est-à-dire de l'endroit où je me trouve vers le plus récent ? J'ai naïvement essayé CTRL+Shift+r, sans succès. J'ai entendu parler de CTRL+g mais ce n'est pas ce à quoi je m'attends ici. Quelqu'un a une idée ?

2 votes

Il s'agit plutôt d'une question de superutilisateur je suppose : superuser.com/questions/472846/…

6 votes

Sur Ubuntu, c'est certainement Ctrl+Shift+R

5 votes

@m-ric vous dites que c'est plutôt une question de superutilisateur. Ici, elle a reçu 88 votes positifs. Sur superutilisateur, elle en a reçu 6.

93voto

gdupont Points 161

Il y a une question similaire ici :

Contrôle-r recherche inversée dans Bash : comment "réinitialiser" la recherche dans Cygwin ?

Voici une autre question similaire sur Super User :

(recherche inversée) dans Bash

Apparemment, les deux mentionnent Ctrl+s, qui pourrait être la solution.

1 votes

Ctrl-s - emacs standard.

51 votes

Important : Pour que ^-S fonctionne, ajoutez stty -ixon à votre profil bash (~/.bashrc sur Linux, ~/.bash_profile sur OSX). Notez également que pour inverser la direction en appuyant sur l'autre raccourci clavier correspondant est initialement une non-opération - tout ce qui change est le préfixe de l'affichage (reverse-i-search vs i-search). Ainsi, pour finalement prendre 1 pas dans l'autre direction, appuyez sur le raccourci clavier deux fois.

3 votes

Que signifie no-op? Que fait exactement stty -ixon?

63voto

CTRL + S

...m'a aidé APRÈS avoir utilisé...

stty -ixon

Si CTRL+S ne fonctionne pas pour vous, c'est parce que selon la réponse acceptée de Vincenzo Pii dans un autre fil de discussion lié:

Le problème est que cette combinaison de touches, dans de nombreux terminaux, est utilisée par défaut pour envoyer le code de transmission de pause (XOF).

Comme indiqué dans man stty:

[-]ixon
    activer le contrôle de flux XON/XOFF

Donc, si cette option est activée sur votre terminal (la sortie de stty -a contient ixon sans le signe - devant), vous ne pouvez pas utiliser CTRL+S dans le contexte de la recherche inversée.

Pour la désactiver, utilisez la commande suivante:

stty -ixon

Et CTRL+S vous donnera un (i-search) (non inversé).

4voto

advisor21 Points 1

Essayer supprimer, ça a fonctionné comme par magie.

D'autres suggèrent CTRL+s, mais ça ne fonctionne pas pour moi.

8 votes

Essayez d'abord d'exécuter stty -ixon. Si cela aide, ajoutez-le à votre profil bash.

5 votes

Ça fonctionne, mais pourriez-vous s'il vous plaît m'expliquer ce que fait exactement stty -ixon ?

3 votes

Supprimer n'a rien fait pour moi

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X