Допустим, у меня в текущем каталоге есть следующие файлы:
buildBar.bat
buildFoo.bat
buildHouse.bat
И я набираю в командной строке следующее, ./bu
а затем TAB.
В Bash он расширяется до
./build
В PowerShell он расширяется до
./buildBar.bat
- первого элемента в списке.В Cmd поведение такое же, как и в PowerShell.
Я предпочитаю поведение Bash - есть ли способ заставить PowerShell вести себя как Bash?
powershell
cmd
tab-completion
РобСиклос
источник
источник
bash
;)Ответы:
Новые версии PowerShell включают PSReadline, который можно использовать для этого:
Чтобы сделать его постоянным, поместите эту команду в C: \ Users \ [User] \ Documents \ WindowsPowerShell \ profile.ps1.
источник
MenuComplete
вместо этогоComplete
он больше похож на bash, он позволяет использовать клавиши со стрелками для выбора из доступных опцийnew-item $profile -itemtype file -force
C:\Users\[User]\Documents\WindowsPowerShell\profile.ps1.
Вам действительно нужно запуститьnew-item $profile -itemtype file -force
touch
:-(Теперь можно заставить PowerShell выполнять завершение в стиле Bash с помощью PSReadline.
Ознакомьтесь с публикацией в блоге Завершение вкладок в стиле Bash в PowerShell .
источник
Взгляните сюда, не совсем то, что вам нужно:
PowerTab
но я думаю, что это лучшая функция расширения вкладок для консоли PowerShell !!!
источник
tab
завершает только имя команды, а не ее предыдущие аргументы / параметры.чтобы также выполнить автозаполнение полной команды с аргументами из истории, установите следующую привязку клавиш.
Теперь введите несколько символов имени команды и используйте стрелки вверх / вниз для автозаполнения этой команды (с аргументами) из истории.
реальная экономия времени.
источник
Измените функцию TabExpansion, чтобы добиться желаемого. Помните, что, возможно, он завершится до конца, если вы снова нажмете вкладку, новое предложение изменится с того места, где вы первоначально нажали клавишу. Я очень предпочитаю реальное поведение, я хочу, чтобы строка была написана как можно быстрее. Наконец, не забудьте про подстановочные знаки, например: bu * h [Tab] автоматически завершается до buildHouse.bat
источник
С Powershell Core мы можем установить свойство PredictionSource для PSReadLine как History, чтобы получить автоматическое предложение. Более подробную информацию см. В видео на YouTube https://youtu.be/I0iIZe0dUNw
источник
источник