Wenn ich in bash tippe und die Tabulatortaste drücke, um automatisch zu vervollständigen, dauert es manchmal sehr lange. Zum Beispiel dauert das Lesen von Verzeichnissen für Datei-E / A> 5 Sekunden, und daher muss ich warten, bis die E / A abgeschlossen ist, bevor ich mit der Eingabe fortfahren kann. Ich bin frustriert und Strg-C, damit ich wiederholen kann, was ich geschrieben habe.
Strg-C ist unglücklich, da ich alles noch einmal eingeben muss. Wie kann ich bash anweisen, nicht mehr zu versuchen, meine automatische Vervollständigungsanforderung zu erfüllen?
$ /long/path/to/some/d # once I've typed this, I press <TAB>. I now will be
# stuck waiting for perhaps 10 seconds. The only thing I
# know to do is Ctrl-C. When I press Ctrl-C, I am forced
# to retype the original command string.
$
bash
autocomplete
Chris
quelle
quelle
Antworten:
Ich habe das gerade hier gefunden .
Verwenden Sie
Ctrl+\
. Es wird die Fertigstellung stoppen und zur Befehlszeile zurückkehren, ohne den aktuellen Befehl zu verlieren.quelle
Sie können ähnliche Probleme haben, ohne die Registerkarte zu vervollständigen. Dies führt zu keinem technischen Unterschied, dh es gelten die gleichen Lösungen.
Eine Möglichkeit besteht darin, die Suche im Hintergrund zu starten und das Ergebnis in ein FIFO zu schreiben. Sie können dann mit einer Zeitüberschreitung aus dem FIFO lesen (
read -t 0.3 ...
).Ich glaube, ich habe hier in letzter Zeit eine einfachere Lösung als FIFOs gesehen ... aber derzeit erinnere ich mich nicht daran.
read -t
funktioniert auch mit einer Pipeline, aber das Fertigstellen von beendetread
nicht die früheren Teile der Pipeline und die Pipeline kehrt erst zurück, nachdem alle ihre Teile fertig sind.quelle
Unter Ubuntu 16.04 hat das Schlagen
q
bei mir funktioniert.Siehe diese https://unix.stackexchange.com/a/341025/332159 .
quelle