我们说我目前的目录中有以下文件:
buildBar.bat
buildFoo.bat
buildHouse.bat
我在命令提示符下输入以下内容,./bu
,然后 TAB 。
在Bash中,它会扩展为./build
在PowerShell中,它会扩展为./buildBar.bat
- 列表中的第一项。
在Cmd中,行为与PowerShell相同。
我更喜欢Bash行为 - 有没有办法让PowerShell表现得像Bash。
答案 0 :(得分:93)
PowerShell的新版本包括PSReadline,可用于执行此操作:
Set-PSReadlineKeyHandler -Key Tab -Function Complete
要使其永久化,请将此命令放入C:\ Users \ [User] \ Documents \ WindowsPowerShell \ profile.ps1。
答案 1 :(得分:15)
现在可以使用PSReadline让PowerShell完成Bash样式的完成。
答案 2 :(得分:14)
答案 3 :(得分:5)
修改TabExpansion函数以实现您想要的效果。请记住,如果再次按Tab键,它可能会一直完成,新建议会从您最初按键的位置进行修改。我非常喜欢实际行为,我希望尽可能快地写入行。最后不要忘记通配符扩展,例如:bu * h [Tab]自动完成buildHouse.bat
答案 4 :(得分:4)
# 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
答案 5 :(得分:2)
使用Powershell Core,我们可以将PSReadLine的PredictionSource属性设置为历史记录,以获取自动建议。有关更多详细信息,请参阅YouTube视频。 https://youtu.be/I0iIZe0dUNw
答案 6 :(得分:1)
tab
仅完成命令名称,而不是其先前的参数/参数。
还要使用历史记录中的参数自动完成完整的命令,请在下面设置键绑定。
Set-PSReadlineKeyHandler -Key UpArrow -Function HistorySearchBackward
Set-PSReadlineKeyHandler -Key DownArrow -Function HistorySearchForward
现在,键入命令名称的几个字符,并使用向上/向下箭头从历史记录中自动完成此命令(带有参数)。
实时保护程序。