PSReadLine устанавливаем подсветку синтаксиса в консоль PowerShell

в 3:53, , рубрики: powershell, подсветка синтаксиса

Владельцы windows 10 могут наслаждаться подсветкой синтаксиса в консоли PowerShell в предыдущих версиях подсветка сама не появится даже если установить WMF5. Подсветка реализуется модулем PSReadLine. Этот модуль позволяет делать разные подсветки Emac подобную или Vim, добавлять команды и т.п., добавляет поиск в истории, собственные шоткаты и т.п. Далее описывается как установить подсветку в консоль PowerShell предыдущих версий windows.

1. установка на Win 8.1 и 2012R2 если установлен у Вас уже установлен WMF5
нужно скачать модуль подсветки из хранилища OneGet командлетом Find-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:USERPROFILEDownloadsPSREadline* $env:USERPROFILEDocumentsWindowsPowerShellModulesPSReadLine

установка PSReadLine
для установки запустите консоль под администратором
установите разрешения исполнения скриптов
выполните импорт модуля

Import-Module PSReadLine

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

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

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

Теперь можно ввести Get-PSReadlineKeyHandler и посмотреть какие шоткаты определены по умолчанию

Автор: pak-nikolai

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js