将 Powershell 制表符完成行为更改为不将相对路径扩展为绝对路径

将 Powershell 制表符完成行为更改为不将相对路径扩展为绝对路径

当我使用 Powershell 中的制表符补全功能完成相对路径时,Powershell 会将其转换为绝对路径。虽然绝对路径有效,但它变得有点烦人(使我的命令变得非常长,并且让我在自动完成时重新转移焦点)。有没有办法改变它以在制表符补全时保留相对路径?

答案1

自定义 PowerShell 选项卡扩展

您可以通过替换“TabExpansion”函数来自定义 PowerShell 中的选项卡扩展。您可以使用 {{Get-Content function:TabExpansion}} 获取该函数的当前内容。此函数应返回应向用户显示的所有结果。

有一些问题需要处理。

实现相对路径

默认的 TabExpansion 函数不进行路径扩展,它让 PowerShell 引擎进行路径扩展,这是绝对的最后退路。因此,您需要在 PowerShell 中增加路径处理功能。

更好的选择

我是电源表项目,这是 PowerShell 中选项卡扩展的丰富实现。它提供相对路径支持,以及大量其他内容(WMI 类名、.NET 类型名、共享、方法签名等)。这项工作已经为您完成。

尝试自己

如果您想尝试将此功能添加到默认代码中,您可以查看此文件的末尾,从注释“## Filesystem Completion”开始:

http://powertab.codeplex.com/SourceControl/changeset/view/040492b7d2d1#TabExpansionCore.ps1

该块中有相当多的 PowerTab 特定代码,但如果您想尝试,我可以帮助您。

相关内容