Raccourci unique pour la recherche avant après la recherche inversée Ctrl-R

13

J'utilise Ctrl+ Rtout le temps, mais je finis souvent par dépasser la commande que je recherche car j'appuie dessus si rapidement.

Pour transférer la recherche, Ctrl+ Speut être utilisé à condition qu'il n'est pas utilisé la première borne (konsole dans mon cas, où stty -ixondans le ~/.bashrcfixe).

Cependant, je dois appuyer deux fois: une fois, il semble entrer i-searchaprès avoir été en reverse-i-searchmode et une deuxième fois pour reculer.

Existe-t-il un moyen de supprimer la nécessité d'appuyer deux fois sur le raccourci?

jozxyqk
la source
3
Comme avec Ctrl-R, le premier Ctrl-S attend la recherche d'une chaîne. Le second réutilise la même chaîne de recherche que vous avez utilisée auparavant (avec Ctrl-R dans votre situation). Je ne connais aucun moyen d'éviter ces deux étapes. readlineil manque une fonction "rechercher la même chaîne dans l'autre sens".
xhienne

Réponses:

11

Voici une approche différente. Si vous êtes à l'aise avec certaines commandes d'édition vi de base, bash prend en charge un vi-mode pour l'édition en ligne de commande. Si vous détestez vraiment vi, vous n'aimerez pas ça. Mais si vous pouvez le tolérer, vous pouvez le trouver préférable et avec moins de touches.

set -o vi

La recherche d'historique fonctionne comme ceci:

  • Esc pour entrer en mode commande
  • / pour commencer la recherche
  • Tapez le texte de la chaîne de recherche
  • Enter effectuer une recherche
  • n aller au prochain match
  • N revenir au match précédent
  • i pour revenir en mode insertion
  • Enter exécuter la commande
MikeLRoy
la source
Les équivalents de style vi à Ctrl-R et Ctrl-S sont net N, respectivement. Et ils n'ont pas besoin de taper deux fois. Intrigant!
Nathaniel M. Beaver
2

Apparemment, la recherche dans l'historique de Bash nécessite une première pression sur le raccourci pour vous permettre de savoir dans quelle direction vous recherchez, puis une seconde pression pour effectuer la recherche. Je ne pense pas qu'il soit possible de changer la façon dont cela fonctionne sans modifier le code source.

Cependant, vous pouvez installer hstr (https://github.com/dvorka/hstr) qui comprend une boîte à suggestions avec des options de recherche avancées pour afficher, naviguer, rechercher et gérer facilement l'historique de vos commandes:

entrez la description de l'image ici

dr01
la source