Проблема завершения вкладки PowerShell - PullRequest
5 голосов
/ 23 ноября 2010

Предположим, у меня есть следующая папка: C:\[test]\x, тогда, находясь внутри папки [test], я вообще не могу использовать завершение вкладки PowerShell.

Я думаю, причина в том, чтоимя папки должно быть экранировано до ´[test´] (с инвертированными галочками, что вызывает проблемы с Markdown), как это происходит с завершением при вкладке изнутри C:\.

Мне все равноо завершении отсутствующей вкладки в C:\ и наборе [t..., но я хотел бы использовать завершение вкладки в этой папке.Есть ли способ исправить это поведение?

1 Ответ

2 голосов
/ 24 ноября 2010

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).

...