Как заставить завершение PowerShell работать как Bash - PullRequest
74 голосов
/ 25 ноября 2011

Допустим, у меня есть следующие файлы в моем текущем каталоге:

buildBar.bat
buildFoo.bat
buildHouse.bat

И я в командной строке набираю следующее: ./bu, а затем TAB .

  • В Bash он расширяется до ./build

  • В PowerShell он расширяется до ./buildBar.bat - первого элемента в списке.

  • В Cmd поведение аналогично PowerShell.

Я предпочитаю поведение Bash - есть ли способ заставить PowerShell вести себя как Bash.

Ответы [ 4 ]

102 голосов
/ 09 июня 2016

Новые версии PowerShell включают PSReadline, который можно использовать для этого:

Set-PSReadlineKeyHandler -Key Tab -Function Complete

Чтобы сделать его постоянным, поместите эту команду в C: \ Users \ [Пользователь] \ Documents \ WindowsPowerShell \ profilePS1.

16 голосов
/ 08 ноября 2012

Теперь можно заставить PowerShell выполнять завершение в стиле Bash, используя PSReadline.

Ознакомьтесь с сообщением в блоге Завершение в виде вкладки в PowerShell .

14 голосов
/ 25 ноября 2011

Посмотрите здесь, не совсем ваши пожелания:

PowerTab

но я думаю, что это лучшая функция расширения вкладок для консоли PowerShell !!!

5 голосов
/ 25 ноября 2011

Измените функцию TabExpansion для достижения того, что вы хотите. Помните, что, возможно, он завершится до конца, если вы снова нажмете на вкладку, измените новое предложение с того места, где вы изначально нажимали клавишу. Я настоятельно предпочитаю реальное поведение, я хочу, чтобы строка записывалась как можно быстрее. Наконец, не забудьте расширение подстановочных знаков, например: bu * h [Tab] автоматически завершает сборку buildHouse.bat

...