Владельцы 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: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 и посмотреть какие шоткаты определены по умолчанию
Поделиться с друзьями
-->

Комментарии (7)


  1. doz10us
    24.06.2016 12:42

    Заголовок интересный. Но всё же статью стоило бы вычитать, хотя бы прогнать через правописание в Word или аналогах. Сплошной поток сознания.


  1. dgrees
    24.06.2016 12:42

    Я всё жду, когда в консолях появится автодополнение команд или путей, типа IntelliSense в VS. Или такое уже как-нибудь реализовано?


    1. Funbit
      24.06.2016 14:51

      Реализовано, попробуйте PowerTab.


      1. lmnj
        26.06.2016 11:37
        +1

        ctrl+space


    1. DANic
      27.06.2016 11:45

      Tab же? В Linux консоли всегда был, в win10 пути дополняет.


  1. Funbit
    24.06.2016 14:54

    Не знаете, нет ли готовых цветовых схем для PSReadLine? А то стандартная довольно грубовата, да и после экспериментов с цветами хочется быстро вернуть в исходное состояние.


  1. potan
    24.06.2016 15:42

    А можно заставить Complete корректно работать, если в директории присутствует файл с именем, начинающийся с '.'? Vim любит такие создавать, после чего работать становится не очень удобно.