假设我的当前目录中有以下文件:
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。
./build
./buildBar.bat
--列表中的第一项。我更喜欢Bash的行为--有没有办法让PowerShell像Bash一样行为?
8条答案
按热度按时间xmd2e60i1#
PowerShell的新版本包括PSReadline,可用于执行以下操作:
或者,使其更像bash,您可以使用箭头键导航可用选项:
要使其永久化,请将此命令放入powershell配置文件中,该配置文件由
$PROFILE
(通常为C:\Users\[User]\Documents\WindowsPowerShell\profile.ps1
)定义。wpcxdonn2#
现在可以使用PSReadline让PowerShell执行Bash风格的完成。
查看博客文章 Bash-like tab completion in PowerShell。
mklgxw1f3#
tab
仅完成命令名,而不完成其前面的自变量/参数。要同时用历史记录中的参数自动完成complete命令,请设置下面的键绑定。
现在,键入命令名称的几个字符,并使用向上/向下箭头从历史记录中自动完成此命令(带参数)。
真实的时间。*
查看更多:Power up your PowerShell
3pmvbmvn4#
看看这里,不是真正的你渴望:
PowerTab
但我认为这是PowerShell控制台最好的选项卡扩展功能!!!
ggazkfy85#
os8fio9y6#
修改TabExpansion函数以达到你想要的效果。记住,如果你再次按tab键,它可能会一直完成到最后,新的建议是从你最初按下键的地方修改。我强烈倾向于实际的行为,我希望行写得尽可能快。最后不要忘记通配符扩展,例如:bu*h[Tab]自动完成到buildHouse.bat
7cwmlq897#
使用Powershell Core,我们可以将PSReadLine的PredictionSource属性设置为History,以获得自动建议。有关更多详细信息,请参阅YouTube视频https://youtu.be/I0iIZe0dUNw
6uxekuva8#
实际上,bash行为是由
/etc/inputrc
控制的,而/etc/inputrc
在不同的发行版中有很大的不同。因此,这里介绍了如何使PowerShell的行为更像一个具有合理默认值的bash(Gentoo、CentOS)