Ist es unter Windows mit PowerShell möglich, die Dateinamensvorschläge (mithilfe des TabSchlüssels) so funktionieren zu lassen wie mit Bash unter Linux?
Nehmen wir an, ein Verzeichnis enthält 3 Verzeichnisse: example1
, example
und examination
.
Wenn Sie unter Windows (standardmäßig) cd ex
und eingeben Tab, wird automatisch vorgeschlagen cd .\examination
. Bei nachfolgender Verwendung von Tabwechselt die Vorschlagszeile zwischen example1
, example
und examination
.
cd ex
Wenn Sie in Bash (normalerweise unter Linux) und „ and“ eingeben Tab, wird die automatische Vervollständigung bis zu dem Zeichen durchgeführt, bei dem sich die Dateinamen zu unterscheiden beginnen: cd exam
. Eine andere Verwendung von Tab„then“ schlägt vor, welche Verzeichnisse verfügbar sind:
$ cd exam
examination/ example1/ example2/
Wenn Sie dann pund eingeben Tab, wird automatisch „und“ vervollständigt example
, usw. (hier haben Sie die Wahl zwischen example1
„und“ example2
).
Gibt es eine Möglichkeit, die Dateinamenvorschläge in einer baumartigen Suche wie dieser funktionieren zu lassen, anstatt die Namen zu durchlaufen?
(Mich interessieren vor allem die Dateinamen. Bash kann diese Auswahl auch anhand des Dateityps verfeinern, zum Beispiel nur Verzeichnisse für cd
, was gut wäre, aber die Auswahl des Dateinamens selbst würde ausreichen.)
Antwort1
Das standardmäßige Vervollständigungsverhalten ergibt sich aus der Verwendung des Befehlsfensters, das die Tastatureingaben verarbeitet.
Ab PowerShell v3 ist die ISE als Vollzeit-Shell eine Überlegung wert und verfügt über ein modernes Vervollständigungsverhalten (und Farbgebung!).
Wenn Sie wirklich die BASH-artige Vervollständigung in einem PowerShell-Befehlsfenster wünschen,PSReadline:
https://github.com/lzybkr/PSReadLine
Es gibt hier ein älteres, weniger vorgestelltes und nicht mehr gepflegtes Projekt, das ebenfalls PSReadline heißt:
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