web-dev-qa-db-fra.com

Comment inverser la recherche en arrière?

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

  1. annuler,
  2. rechercher à nouveau et
  3. arrêtez-vous exactement à la commande, sans la transmettre.

En reverse-i-search Invite, est-il possible de rechercher en avant, c’est-à-dire où je me situe au plus récent. J'ai essayé naïvement CTRL+Shift+r, pas de chance. j'ai entendu parler CTRL+g mais ce n'est pas ce que j'attends ici. Quelqu'un a une idée?

113
m-ric

Il y a une question similaire ici:

Control-r reverse-i-search à Bash: comment "réinitialiser" la recherche dans Cygwin?

J'ai trouvé une autre question similaire sur le super utilisateur:

(reverse-i-search) dans Bash

Apparemment, les deux mentionnent Ctrl+s, ce qui peut faire l'affaire.

J'espère que ça t'as aidé. J'essaie moi-même de trouver un morceau de code qui fait le reverse-i-search afin de vérifier son implémentation exacte.

76
gdupont

CTRL + S

... résolu pour moi après avoir utilisé ...

stty -ixon

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

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

Un péché man stty:

[-]ixon
    enable XON/XOFF flow control

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 reverse-i-search .

Pour le désactiver, utilisez la commande suivante:

stty -ixon

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

37

Essayez delete, comme par magie.

D'autres pointent vers CTRL+s, mais ça ne marche pas pour moi.

3
advisor21