ZSH-стиль автодополнения в PowerShell с PSReadLine

ZSH-стиль автодополнения в PowerShell с PSReadLine


Я искал способ получить автодополнение в стиле ZSH (это когда по мере ввода показываются команды из вашей истории, и их можно дополнить простым нажатием стрелки вправо). В итоге наткнулся на PSReadLine - мощный модуль PowerShell, который делает автодополнение именно так, как мне хотелось, и умеет гораздо больше.

В основном использую его ради автодополнения, но если вы пробежитесь по его профилю по умолчанию, то найдёте там ещё несколько очень приятных возможностей. Теперь к установке и настройке.

Для начала нужно убедиться, что Execution Policy установлена в RemoteSigned. Для этого запустите PowerShell от имени администратора:

set-executionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine

Затем установите модуль:

Install-Module PSReadLine

После этого нужно добавить несколько строк в ваш файл профиля (файл .ps1). По умолчанию он находится в папке ~/Documents/PowerShell:

# import the module to enable it
Import-Module PSReadline  

# Shows navigable menu of all options when hitting Tab
Set-PSReadlineKeyHandler -Key Tab -Function MenuComplete

# enable up/down arrows for navigating through the history
Set-PSReadLineKeyHandler -Key UpArrow -Function HistorySearchBackward
Set-PSReadLineKeyHandler -Key DownArrow -Function HistorySearchForward

# moves the cursor to the end of the autocompleted command (remove if you want the cursor to remain where the completion started from)
Set-PSReadLineOption -HistorySearchCursorMovesToEnd

# enable zsh autocompletion like auto completion
Set-PSReadlineOption -PredictionSource History

По умолчанию история будет браться из стандартного расположения. Его можно узнать с помощью Get-PSReadlineOption. Обычно это:

%USERPROFILE%\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadLine


Report Page