假设我有以下文件夹:C:\[test]\x
,那么,当在[test]
文件夹内时,我根本无法使用 PowerShell 的选项卡补全。
我猜这是因为文件夹名称需要转义到´[test´]
(倒转刻度,这会导致此处出现 Markdown 问题),就像从内部跳动时完成一样C:\
。
我并不真正关心在里面C:\
输入时缺少的制表符补全[t...
,但我想在该文件夹中使用制表符补全。有没有办法解决这种行为?
假设我有以下文件夹:C:\[test]\x
,那么,当在[test]
文件夹内时,我根本无法使用 PowerShell 的选项卡补全。
我猜这是因为文件夹名称需要转义到´[test´]
(倒转刻度,这会导致此处出现 Markdown 问题),就像从内部跳动时完成一样C:\
。
我并不真正关心在里面C:\
输入时缺少的制表符补全[t...
,但我想在该文件夹中使用制表符补全。有没有办法解决这种行为?
PowerShell 及其许多功能通常不适用于带有特殊符号的路径,[
并且]
首先是符号。我们无法修复 PowerShell 核心,但我们可以修复/替换一些功能。TabExpansion 就是其中之一。它只是一个可以用改进的实现替换的全局函数。
可以在这里和那里找到几个自定义 TabExpansion 实现。我正在使用我自己的。它与主机无关(至少它与控制台、ISE 和我自己的主机配合得很好),它相当简单,但它提供了很多改进。您的特定问题也已解决。
TabExpansion 的代码(点源或简单地从您的 PowerShell 配置文件中调用它): http ://code.google.com/p/farnet/source/browse/trunk/PowerShellFar/TabExpansion.ps1
此测试涵盖了它的一些功能: http ://code.google.com/p/farnet/source/browse/trunk/PowerShellFar/Bench/Test/Test-TabExpansion-.ps1 (该测试仅适用于特殊环境,不要运行,看代码中的注释看看TabExpansion能做什么)。