Не печатаются заглавные буквы в PowerShell
Обнаружилась интересная проблема в Windows PowerShell, не получается ввести заглавные буквы. Т.е. например я хочу написать:
wsl --set-default Ubuntu
Но заглавная U не печатается и получается:
Заметил что такой глюк возникает только когда во время запуска PowerShell была выбрана русская раскладка клавиатуры, если стояла английская такого глюка нет. Вот первый вариант решения проблемы, просто перед запуском устанавливать английскую раскладку клавиатуры.
После недолгого гугления нашелся виновник такого поведения, это модуль PSReadLine. В документации сказано что он «предоставляет улучшенный интерфейс редактирования командной строки в консоли PowerShell». Такая ошибка тоже известна довольно давно https://github.com/PowerShell/PSReadLine/issues/798 и уже исправлена.
Все решение этой проблемы сводится к переустановки и обновлению модуля PSReadLine.
Сначала удаляем его командой:
Remove-Module PSReadLine
Закрываем терминал и удаляем папку: C:\Program Files\WindowsPowerShell\Modules\PSReadLine
Далее открываем PowerShell от имени Администратора и устанавливаем модуль заново:
Install-Module PSReadLine
При установки могут появится вопросы, выбирайте Y:
Теперь все должно работать.
Можно переключится на русскую раскладку клавиатуры и запустить PowerShell, заглавные буквы должны вводится.