Как настроить сочетания клавиш для Powershell в Arch Linux?

Как настроить сочетания клавиш для Powershell в Arch Linux?

Я работаю на Arch Linux (Manjaro), но начинаю изучать Powershell. Я установил powershell из AUR с помощью yay -S powershell. Однако при использовании powershell ( pwsh) я обнаружил, что сочетания клавиш не работают. Нажатие вверх/вниз не просматривает историю команд, а нажатие TABи ctrl-spaceне запускает автодополнение по табуляции.

Я использую alacritty с zsh. Однако я также тестировал его с xterm pwshи та же проблема там, поэтому я считаю, что эмулятор терминала и родительская оболочканетпричину, и что мне нужно настроить привязки клавиш самостоятельно.

Как настроить основные сочетания клавиш PowerShell?

решение1

Связывание клавиш PowerShell контролируется модулем PSReadLine, который поставляется вместе с ним. Модуль предоставляет различные функции, такие как подсветка синтаксиса, хороший многострочный интерфейс, история и многое другое (см.:https://github.com/PowerShell/PSReadLine).

Вам нужны ключевые обработчики:

PS> Set-PSReadLineKeyHandler -Key Tab -Function Complete

Обязательно ознакомьтесь с их документацией для получения полного обзора поддерживаемых параметров конфигурации:

PS> help about_PSReadLine
# Or list the key current handlers and options:
PS> Get-PSReadLineKeyHandler
PS> Get-PSReadLineOption

Пример конфигурации можно найти в их репозитории git:https://github.com/PowerShell/PSReadLine/blob/master/PSReadLine/SamplePSReadLineProfile.ps1. Все настройки PSReadline необходимо добавить в ваш профиль PowerShell, чтобы сохранить их между сеансами:

PS> echo $PROFILE
/Users/megamorf/.config/powershell/Microsoft.PowerShell_profile.ps1

Вот что я обычно имею в своем профиле PowerShell:

Set-PSReadLineOption -EditMode Emacs -BellStyle None
Set-PSReadLineOption -HistorySearchCursorMovesToEnd

Set-PSReadlineKeyHandler -Key Tab -Function MenuComplete
Set-PSReadLineKeyHandler -Key UpArrow -Function HistorySearchBackward
Set-PSReadLineKeyHandler -Key DownArrow -Function HistorySearchForward

Set-PSReadlineKeyHandler -Key Ctrl+Shift+P `
    -BriefDescription CopyPathToClipboard `
    -LongDescription "Copies the current path to the clipboard" `
    -ScriptBlock { (Resolve-Path -LiteralPath $pwd).ProviderPath.Trim() | Set-Clipboard }

Связанный контент