使用 PowerShell 进行类似 Bash 的非旋转文件名制表符补全

使用 PowerShell 进行类似 Bash 的非旋转文件名制表符补全

在 Windows 下,使用 PowerShell,是否可以让文件名建议(使用键Tab)像 Linux 下的 bash 一样工作?

假设一个目录包含 3 个目录:example1exampleexamination

在 Windows 上(默认情况下),如果您输入cd exTab,它将自动建议cd .\examination。后续使用将在、和Tab之间轮换建议。example1exampleexamination

使用 bash(通常在 Linux 下),如果你输入cd exTab,它将自动完成直到文件名开始不同的字符:cd exam。 的另一种用法Tab是建议哪些目录可用:

$ cd exam
examination/ example1/    example2/

然后,如果您输入pTab,它将自动完成为example,依此类推(此处提供example1和之间的选择example2)。

有没有办法让文件名建议在像这样的树状搜索中发挥作用,而不是轮流显示名称?

(我主要对文件名感兴趣。Bash 还可以根据文件类型优化此选择,例如仅限目录cd,这会很好,但拥有文件名选择本身就足够了。)

答案1

默认的完成行为是使用处理键盘输入的命令窗口的结果。

从 PowerShell v3 开始,ISE 值得被视为一个全职 shell,并且具有现代完成行为(和着色!)。

如果你真的想在 PowerShell 命令窗口中使用 BASH 样式的完成功能,请获取PSReadline

https://github.com/lzybkr/PSReadLine

这里有一个较旧、功能较少且无人维护的项目,也称为 PSReadline: http://nivot.org/nivot2/post/2012/09/12/Emulating-Bash-GNU-Readline-with-PowerShell-30.aspx http://nivot.org/blog/post/2012/09/12/Emulating-Bash-GNU-Readline-with-PowerShell-30

相关内容