Ich verwende die inkrementelle Suche (Strg-r/Strg-s) häufig in Bash und finde sie unglaublich nützlich.
Mir ist aufgefallen, dass Meta-p (Esc p) eine nicht-inkrementelle Suche ausführt, und ich bin neugierig, welchem Zweck es dient, da es ein inkrementelles Äquivalent gibt. Hat es ein paar Tricks auf Lager, die ich übersehen habe? Vielleicht ist es schneller, wenn Ihr Befehlsverlauf absolut riesig ist?
Da es Ihnen nicht dasselbe interaktive Feedback gibt, das Sie bei der inkrementellen Suche erhalten, frage ich mich, warum Sie es verwenden würden.
Antwort1
Ich nehme an, dass man aus denselben Gründen eine nicht-inkrementelle Suche im Bash-Verlauf bevorzugen könnte wie in anderen Schnittstellen. Es kann etwas störend sein, wenn irrelevante Übereinstimmungen vorbeirauschen, wenn man genau weiß, wonach man sucht.
Und Effizienz. Heutzutage nicht mehr so sehr, aber früher, das kann ich mir vorstellen, wäre eine inkrementelle Suche viel, viel langsamer gewesen.
Antwort2
Ich habe tatsächlich eine wirklich nette Funktion der nicht-inkrementellen Suche gefunden. Standardmäßig bindet Readline:
M-n
Zunon-incremental-forward-search-history
M-p
Zunon-incremental-reverse-search-history
Die sind meiner Meinung nach ziemlich mies. Aber ReadlineAuchhat ein weiteres Paar nichtinkrementeller Suchfunktionen ohne Standardbindungen:
history-search-forward
history-search-backward
Durchsuchen Sie den Verlauf vorwärts/rückwärts nach der Zeichenfolge zwischen dem Anfang der aktuellen Zeile und dem Punkt.
M-n
Diese sind tatsächlich ziemlich nützlich. Ich habe sie an und gebunden und M-p
damit die standardmäßigen nicht inkrementellen Funktionen ersetzt.
Wenn ich mit der Eingabe eines Befehls begonnen habe und nach einem passenden Verlaufseintrag suchen möchte, kann ich tippen Escape p
(da ich eigentlich keine Meta-Taste habe).
Durch wiederholtes Tippen gelangt man weiter zurück und Escape n
wieder vorwärts.