PSReadLine встановлюємо підсвічування синтаксису в консоль PowerShell

Власники windows 10 можуть насолоджуватися підсвічуванням синтаксису в консолі PowerShell в попередніх версіях підсвічування сама не з'явиться навіть якщо встановити WMF5. Підсвічування реалізується модулем PSReadLine. Цей модуль дозволяє робити різні підсвічування Emac подібну або Vim, додавати команди і т. п., додає пошук в історії, власні шоткаты і т. п. Далі описується як встановити підсвічування в консоль PowerShell попередніх версій windows.

1. установка на Win 8.1 і 2012R2 якщо встановлений у Вас вже встановлений WMF5
потрібно завантажити модуль підсвічування зі сховища OneGet cmdletFind-Package якщо до цього він не використовувався попросить завантажити і встановити менеджер пакунків NuGet

Далі робимо на всі питання відповідаємо ствердно
Find-Package PSReadLine
Install-Module PSReadLine

Import-Module PSReadLine

підсвічування синтаксису
наявність OneGet сильно полегшує життя деяких випадках

2. установка на Win 8.1 c PowerShell 4
потрібно завантажити PSReadLine.zip з GitHub.
після перевірте знято блокування з завантаженого файлу (інакше ви можете отримати помилку при спробі запуску сценарію), для цього відкрийте властивості файлу і якщо є кнопка «розблокувати» натисніть
розблокування альтернативного потоку
це просто модуль, далі діємо як при установці будь-якого модуля, копіюємо його в папку modules. Якщо ви не створили ще таку папку то її потрібно створити

cp $env:USERPROFILE\Downloads\PSREadline\* $env:USERPROFILE\Documents\WindowsPowerShell\Modules\PSReadLine\


установка PSReadLine
для установки запустіть консоль під адміністратором
встановіть дозволу на виконання скриптів
виконайте імпорт модуля
Import-Module PSReadLine

якщо ви не бачите повідомлення про помилки значить все зроблено правильно і модуль запустився

останнім можна додати автоматичний імпорт модуля при кожному запуску консолі
для цього потрібно додати команду імпорту ваш профіль. Т. к. модуль для PS4 не дуже добре працює в PowerShell ISE рекомендується залишити імпорт тільки для консолі. для PowerShell 5 такої проблеми немає, модуль працює і в ISE теж

if ($host.Name -eq 'ConsoleHost')
{
Import-Module PSReadLine
}


Тепер можна ввести Get-PSReadlineKeyHandler і подивитися які шоткаты визначені за умовчанням
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.