저는 Arch Linux(Manjaro)에 살고 있지만 Powershell을 배우기 시작했습니다. AUR에서 powershell을 설치했습니다 yay -S powershell
. 그런데 powershell( )을 사용할 때 pwsh
키 바인딩이 작동하지 않는 것을 발견했습니다. 위/아래를 눌러도 명령 기록을 거치지 않으며, 눌러도 TAB
탭 ctrl-space
완성이 실행되지 않습니다.
저는 zsh와 함께 alacritty를 사용하고 있습니다. 그러나 나는 그것을 테스트했는데 xterm pwsh
동일한 문제가 있으므로 터미널 에뮬레이터와 상위 쉘이 다음과 같다고 생각합니다.~ 아니다원인이 무엇인지, 키 바인딩을 직접 구성해야 한다는 점입니다.
기본 Powershell 키 바인딩을 어떻게 구성합니까?
답변1
PSReadLine
PowerShell 키 바인딩은 함께 제공되는 모듈 에 의해 제어됩니다 . 이 모듈은 구문 색상 지정, 우수한 여러 줄 경험, 기록 등과 같은 다양한 기능을 제공합니다(참조: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 }