在 Windows 下,使用 PowerShell,是否可以让文件名建议(使用键Tab)像 Linux 下的 bash 一样工作?
假设一个目录包含 3 个目录:example1
、example
和examination
。
在 Windows 上(默认情况下),如果您输入cd ex
和Tab,它将自动建议cd .\examination
。后续使用将在、和Tab之间轮换建议。example1
example
examination
使用 bash(通常在 Linux 下),如果你输入cd ex
和Tab,它将自动完成直到文件名开始不同的字符:cd exam
。 的另一种用法Tab是建议哪些目录可用:
$ cd exam
examination/ example1/ example2/
然后,如果您输入p和Tab,它将自动完成为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