假设我当前目录中有以下文件:
buildBar.bat
buildFoo.bat
buildHouse.bat
然后在命令提示符下键入以下内容,./bu
然后单击确定TAB。
在Bash中,它扩展为
./build
在PowerShell中,它扩展为
./buildBar.bat
-列表中的第一项。在Cmd中,行为与PowerShell相同。
我更喜欢Bash行为-有没有办法使PowerShell像Bash一样运行?
假设我当前目录中有以下文件:
buildBar.bat
buildFoo.bat
buildHouse.bat
然后在命令提示符下键入以下内容,./bu
然后单击确定TAB。
在Bash中,它扩展为 ./build
在PowerShell中,它扩展为./buildBar.bat
-列表中的第一项。
在Cmd中,行为与PowerShell相同。
我更喜欢Bash行为-有没有办法使PowerShell像Bash一样运行?
Answers:
PowerShell的新版本包括PSReadline,可用于执行以下操作:
Set-PSReadlineKeyHandler -Key Tab -Function Complete
若要使其永久,请将此命令放入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
:-(
修改TabExpansion函数以实现所需的功能。请记住,如果您再次按Tab键,则新建议会从您最初按此键的位置修改到最后。我非常喜欢实际行为,我希望行尽可能快地写出来。最后,不要忘记通配符扩展,例如:bu * h [Tab]自动完成到buildHouse.bat
使用Powershell Core,我们可以将PSReadLine的PredictionSource属性设置为History以获取自动建议。有关更多详细信息,请参阅YouTube视频 https://youtu.be/I0iIZe0dUNw
# keep or reset to powershell default
Set-PSReadlineKeyHandler -Key Shift+Tab -Function TabCompletePrevious
# define Ctrl+Tab like default Tab behavior
Set-PSReadlineKeyHandler -Key Ctrl+Tab -Function TabCompleteNext
# define Tab like bash
Set-PSReadlineKeyHandler -Key Tab -Function Complete
bash
;)