Gibt es in Fish eine Funktion für die inkrementelle Rückwärtssuche, die mit STRG + R von Bash vergleichbar ist?


36

Ich bin wirklich beeindruckt von der Autocomplete-Funktionalität von Fish . Es gibt jedoch eine Funktion in Bash, die ich in Fish nicht finden kann. Wenn Sie in Bash Ctrl+ drücken Rund einen Begriff eingeben, wird .bash_historynach Übereinstimmungen in umgekehrter Reihenfolge gesucht .

Gibt es eine ähnliche Funktionalität in Fish?


Das Besondere an der Aufwärts- / Abwärtspfeil-Funktion von Fisch ist, dass sie weitaus weniger leistungsstark ist als die Rückwärtssuche von bash. Dies wird offensichtlich, wenn Sie sich an Ihr Argument oder eine Option erinnern können, jedoch nicht an den ersten Teil Ihres Befehls. Die Rückwärtssuche führt eine Fuzzy-Inline-Suche durch, der Fisch prüft nur, ob der Satzanfang identisch ist.
Kasper HJ

6
@ KasperHJ, ich denke, Ihr Kommentar ist möglicherweise nicht mehr aktuell. Ich habe getippt staund gedrückt und es gefunden git stash list. Ich habe gerade erst mit der Verwendung von Fish begonnen, daher weiß ich nicht, ob dies eine kürzlich hinzugefügte Funktion oder eine Funktion ist, die schon lange in Fish vorhanden ist.
Elias Zamaria

Antworten:


46

Ich habe fishmich selbst nie benutzt, aber eine flüchtige Google-Suche hat diese Seite aufgerufen, auf der es heißt

Leistungsstarker Geschichtsmechanismus

Moderne Shells speichern vorherige Befehle in einem Befehlsverlauf. Sie können frühere Befehle mithilfe der Aufwärts- und Abwärtspfeile anzeigen. Fish erweitert dieses Konzept durch die Integration der Historiensuchfunktion. Um den Verlauf zu durchsuchen, geben Sie einfach den Suchbegriff ein und drücken Sie den Aufwärtspfeil. Mit den Pfeiltasten nach oben und unten können Sie nach älteren und neueren Übereinstimmungen suchen. Der Fischverlauf entfernt automatisch doppelte Übereinstimmungen und die entsprechende Teilzeichenfolge wird hervorgehoben. Diese Funktionen beschleunigen das Suchen und Wiederverwenden früherer Befehle erheblich.

Ist es das wonach du suchst? Es scheint ziemlich ähnlich zu bash.


7

fish implementiert keine inkrementelle Verlaufssuche, obwohl dies gelegentlich vorkommt. Die Dokumentation vor Version 2.0 enthält den Abschnitt 1 "Fehlende Funktionen und Fehler" , in dem die inkrementelle Verlaufssuche ziemlich weit unten in der Liste "Mögliche Funktionen" aufgeführt ist. Die Mailingliste der Fischnutzer enthält diese Nachricht von Axel Liljencratz vom 21. August 2006, in der er sagt, dass eine inkrementelle Suche eine nette Funktion wäre.

Wenn Sie es gewohnt sind, eine inkrementelle Suche im Bash-Stil durchzuführen, ist die Suche nach Fischprotokollen etwas gewöhnungsbedürftig. Sie müssen zuerst den Suchbegriff eingeben und die entsprechenden Einträge mit dem Auf- und Abwärtspfeil nach oben und unten verschieben. Aber ich nehme an, Sie gewöhnen sich daran.




1

Weit besser Strg + r Inverssuche mit FZF und fzf Fisch - Plugin , mit dem Triton Fisch Paket - Manager , konfiguriert verwenden 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"

Gehen Sie unter Mac OS wie folgt vor, um die Voraussetzungen zu installieren:

brew install the_silver_searcher
brew install fzf

0

Die Verwendung von Aufwärts- und Abwärtspfeilen ist keine gute Alternative zu Ctrl+R, denn wenn die gesuchte Phrase wirklich tief in der Geschichte steckt, müssen Sie häufig die Aufwärts- / Abwärts-Tasten drücken! Ich benutze nurhistory | grep -i [phrase]

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.