Проблема завершения вкладок PowerShell

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

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

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


person poke    schedule 23.11.2010    source источник
comment
Я даже не могу войти в эту папку с Set-Location... нужен аргумент LiteralPath. Угу.   -  person Joey    schedule 24.11.2010


Ответы (1)


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

person Roman Kuzmin    schedule 24.11.2010
comment
Спасибо, я посмотрю на это! - person poke; 29.11.2010