Existe-t-il une fonctionnalité de «recherche incrémentielle inversée» dans Fish similaire à CTRL + R de Bash?

36

Je suis vraiment impressionné par la fonctionnalité de saisie semi-automatique de Fish . Cependant, il y a une fonctionnalité dans Bash que je ne trouve pas dans Fish. Lorsque vous appuyez sur Ctrl+ Rdans Bash et commencez à taper un terme, une recherche est effectuée sur votre .bash_historypour trouver des correspondances dans l'ordre inverse.

Existe-t-il une fonctionnalité similaire dans Fish?

user784637
la source
La chose à noter sur la fonction de flèche haut / bas du poisson est qu'elle est beaucoup moins puissante que la recherche inversée de bash. Cela devient évident lorsque vous vous souvenez de votre argument, ou d'une option, mais pas à partir de la première partie de votre commande. La recherche inversée effectue une recherche en ligne floue, le poisson vérifie simplement le début de la phrase identique.
Kasper HJ
6
@KasperHJ, je pense que votre commentaire est peut-être obsolète. J'ai tapé staet pressé, et il a trouvé git stash list. Je viens de commencer à utiliser Fish récemment, donc je ne sais pas s'il s'agit d'une fonctionnalité récemment ajoutée ou de quelque chose qui existe depuis longtemps dans Fish.
Elias Zamaria

Réponses:

46

Je ne fishme suis jamais utilisé, mais une recherche rapide sur Google a fait apparaître cette page qui dit que

Mécanisme d'histoire puissant

Les shells modernes enregistrent les commandes précédentes dans un historique de commandes. Vous pouvez afficher les commandes antérieures à l'aide des flèches haut et bas. Fish étend ce concept en intégrant la fonctionnalité de recherche d'historique. Pour rechercher l'historique, tapez simplement la chaîne de recherche et appuyez sur la flèche vers le haut. En utilisant les flèches haut et bas, vous pouvez rechercher des correspondances plus anciennes et plus récentes. L'historique des poissons supprime automatiquement les correspondances en double et la sous-chaîne correspondante est mise en surbrillance. Ces fonctionnalités rendent la recherche et la réutilisation des commandes précédentes beaucoup plus rapides.

C'est bien ce que vous cherchez? Cela semble assez similaire à bash.

terdon
la source
7

fish n'implémente pas la recherche d'historique incrémentielle, bien qu'elle semble apparaître de temps en temps. La documentation pré-2.0 contient une section 1 "Fonctions et bogues manquants" qui répertorie la recherche d'historique incrémentielle assez loin dans la liste "Fonctionnalités possibles". La liste de diffusion des utilisateurs de poisson comprend ce message d'Axel Liljencratz, daté du 21 août 2006, dans lequel il dit que la recherche incrémentielle serait une fonctionnalité intéressante.

Si vous êtes habitué à la recherche incrémentielle de style bash, la recherche dans l'historique des poissons prend un peu de temps. Vous devez d'abord taper le terme de recherche, et vous déplacez de haut en bas les entrées correspondantes avec les flèches haut et bas. Mais je suppose que vous vous y habituez.

rici
la source
1

Mieux vaut les recherches inversées Ctrl + r avec FZF et le plugin poisson fzf , en utilisant le gestionnaire de paquet de poissons Triton , configuré pour utiliser The Silver Searcher .

~ / .config / fish / config.fish:

triton jethrokuan/fzf
set -U FZF_COMPLETE 2
set -U FZF_FIND_FILE_COMMAND "ag -l --hidden --ignore .git"
set -U FZF_DEFAULT_OPTS "--height 40% --layout=reverse --border"

Sous Mac OS, pour installer les prérequis:

brew install the_silver_searcher
brew install fzf
Duc
la source
0

Utiliser les flèches haut et bas n'est pas une bonne alternative Ctrl+R, car si la phrase que vous recherchez est vraiment profonde dans l'histoire, vous devrez beaucoup appuyer sur les touches haut / bas! J'utilise justehistory | grep -i [phrase]

Jose Miguel Ochoa
la source