代码之家  ›  专栏  ›  技术社区  ›  poke

PowerShell选项卡完成问题

  •  5
  • poke  · 技术社区  · 14 年前

    假设我有以下文件夹: C:\[test]\x ,然后,当 [test] 文件夹,我根本无法使用PowerShell的选项卡完成。

    我想是因为需要将文件夹名转义到 ´[test´] (随着勾号的倒转,这会导致这里的降价问题),就像从内部勾号时完成的那样。 C:\ .

    我真的不在乎在 C: 然后打字 [t... ,但我想使用该文件夹中的制表符完成。有什么方法可以纠正这种行为吗?

    1 回复  |  直到 14 年前
        1
  •  2
  •   Roman Kuzmin    14 年前

    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可以做什么)。