Можно ли в Windows, используя PowerShell, заставить предложение имени файла (с использованием Tabключа) работать так же, как в bash в Linux?
Предположим, что каталог содержит 3 каталога: example1
, example
и examination
.
В Windows (по умолчанию), если вы введете cd ex
и Tab, автоматически будет предложено cd .\examination
. Последующее использование Tabбудет чередовать предложения между example1
, example
и examination
.
Используя bash (обычно в Linux), если вы введете cd ex
and Tab, он будет автоматически дополняться до символа, где имена файлов начинают различаться: cd exam
. Другое использование Tabthen подсказывает, какие каталоги доступны:
$ cd exam
examination/ example1/ example2/
Затем, если вы введете pи Tab, произойдет автоматическое заполнение до example
и т. д. (здесь предлагается выбор между example1
и example2
).
Есть ли способ заставить предложение имени файла работать в древовидном поиске, подобном этому, вместо ротации по именам?
(Меня в основном интересуют имена файлов. Bash также может уточнить этот выбор на основе типа файла, например, только каталоги для cd
, что было бы хорошо, но было бы достаточно иметь выбор самого имени файла.)
решение1
Поведение автозавершения по умолчанию является результатом использования командного окна, которое обрабатывает ввод с клавиатуры.
Начиная с PowerShell v3, ISE можно рассматривать как полноценную оболочку, обладающую современным поведением автодополнения (и раскрашиванием!).
Если вам действительно нужно автодополнение в стиле BASH в командном окне PowerShell, получитеPSReadline:
https://github.com/lzybkr/PSReadLine
Существует более старый, менее популярный и неподдерживаемый проект, также называемый PSReadline:
http://nivot.org/nivot2/post/2012/09/12/Emulating-Bash-GNU-Readline-with-PowerShell-30.aspx
http://nivot.org/blog/post/2012/09/12/Эмулирование-Bash-GNU-Readline-с-PowerShell-30