Bash-ähnliche, nicht rotierende Vervollständigung der Registerkarte "Dateiname" mit PowerShell

8

Ist es unter Windows unter Verwendung von PowerShell möglich, dass der Dateinamenvorschlag (mithilfe des TabSchlüssels) wie bei bash unter Linux funktioniert?

Nehmen wir an, ein Verzeichnis enthält 3 Verzeichnisse : example1, exampleund examination.

Unter Windows (Standardeinstellung), wenn Sie eingeben cd exund Tabes wird automatisch vorschlagen cd .\examination. Nachfolgende Verwendungen von Tabwerden den Vorschlag zwischen example1, exampleund drehen examination.

Wenn Sie bash (normalerweise unter Linux) eingeben cd exund Tabeingeben, wird es automatisch vervollständigt, bis sich das Zeichen, bei dem sich die Dateinamen unterscheiden, ändert : cd exam. Eine andere Verwendung von Tabschlägt dann vor, welche Verzeichnisse verfügbar sind:

$ cd exam
examination/ example1/    example2/

Wenn Sie dann pund Tabeingeben, wird es automatisch vervollständigt exampleund so weiter (hier mit einer Auswahl zwischen example1und example2).

Gibt es eine Möglichkeit, den Dateinamenvorschlag in einer solchen baumartigen Suche zum Laufen zu bringen, anstatt durch die Namen zu blättern?

(Ich interessiere mich hauptsächlich für Dateinamen. Bash kann diese Auswahl auch basierend auf dem Dateityp verfeinern, zum Beispiel nur Verzeichnisse für cd, was gut wäre, aber die Auswahl des Dateinamens selbst wäre ausreichend.)

Bruno
quelle

Antworten:

5

Das Standard-Abschlussverhalten ist das Ergebnis der Verwendung des Befehlsfensters, das die Tastatureingabe verarbeitet.

Ab PowerShell v3 ist die ISE als Vollzeit-Shell in Betracht zu ziehen und verfügt über ein modernes Abschlussverhalten (und Kolorierung!).

Wenn Sie wirklich eine Vervollständigung im BASH-Stil in einem PowerShell-Befehlsfenster wünschen, rufen Sie PSReadline auf :

https://github.com/lzybkr/PSReadLine

Es gibt ein älteres, weniger funktionierendes und nicht gepflegtes Projekt, das hier auch PSReadline genannt wird: http://nivot.org/nivot2/post/2012/09/12/Emulating-Bash-GNU-Readline-with-PowerShell-30.aspx http : //nivot.org/blog/post/2012/09/12/Emulating-Bash-GNU-Readline-with-PowerShell-30

Jay Bazuzi
quelle