Gibt es eine Möglichkeit, einen Abschluss nach dem Start abzubrechen? Manchmal drücke ich törichterweise die Tabulatortaste, um Ziele automatisch zu vervollständigen (nur aus purer Trägheit), und muss dann länger warten, als wenn ich nur das gesamte "Installieren" oder "Auschecken" selbst eingegeben hätte.
Ich habe auf der zshzle-Manpage nichts Besonderes gesehen, aber vielleicht habe ich etwas verpasst? Haben andere Muscheln diese Fähigkeit?
EDIT : Triviale Antwort. Also stattdessen: Gibt es eine Möglichkeit für zsh, zu schätzen, dass die Ausführung der Registerkarte relativ lange dauern würde, und stattdessen zu fragen, ob der Benutzer dies wünscht?
zsh
autocomplete
Zorawar
quelle
quelle
ctrl-c
funktioniert nicht?Antworten:
Ein SIGINT unterbricht den aktuellen Abschlussvorgang und bringt Sie zurück zum Zeileneditor. Drücken Sie also Ctrl+ C. Der Effekt ist möglicherweise nicht unmittelbar: Der Interpreter sucht nur an bestimmten Punkten während der Ausführung nach Signalen (sie sind jedoch häufig), und das Signal kann eine Weile dauern, wenn der zsh-Prozess in einem Systemaufruf blockiert wird (z. B. wenn dies der Fall ist) Warten auf eine Antwort eines Dateisystems).
Wenn Sie zum falschen Zeitpunkt Ctrl+ drücken Cund zum Zeitpunkt der Signalübermittlung noch keine Fertigstellung vorliegt, wird Ihre aktuelle Befehlszeile leider abgebrochen. Dies ist schwer zu beheben, ohne zwei verschiedene Interrupt-Schlüssel zu haben, einen zur Vervollständigung und einen für den Rest, und ich bin mir nicht sicher, ob zsh dies unterstützt.
Es ist nicht wirklich machbar, Sie zu warnen, wenn eine Fertigstellung lange dauern könnte. Die Geschwindigkeit einer Abschlussfunktion wird häufig hauptsächlich von der Geschwindigkeit bestimmt, mit der einige Informationen aus dem Dateisystem gelesen werden können. Ob sich diese Informationen im Cache befinden oder nicht, wie viel vorhanden ist und um welche Art von Dateisystem es sich handelt (z. B. Ramdisk, Festplatte oder NFS-Mount), hat großen Einfluss.
quelle
Sie können ctrl+ verwenden k, um die automatische Vervollständigung abzubrechen. Allerdings kann ich auch keine Informationen aus zsh guide finden , aber es bricht die automatische Vervollständigung ab.
quelle