Проблема с завершением вкладки PowerShell
-
27-09-2019 - |
Вопрос
Предположим, у меня есть следующая папка: C:\[test]\x
, затем, когда внутри [test]
кроме того, я вообще не могу использовать завершение вкладки PowerShell.
Я предполагаю, что причина этого в том, что имя папки нужно было бы экранировать в ´[test´]
(с перевернутыми галочками, что вызывает здесь проблемы с уценкой), как это делает завершение при вводе вкладок изнутри 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).