我住在 Arch Linux (Manjaro) 上,但我開始學習 Powershell。我已經從 AUR 安裝了 powershell,帶有yay -S powershell
.但是,當使用 powershell ( pwsh
) 時,我發現按鍵綁定不起作用。按向上/向下不會瀏覽命令歷史記錄,按TAB
和ctrl-space
不會觸發製表符完成。
我將 alacritty 與 zsh 一起使用。但是,我也對其進行了測試,xterm pwsh
並且存在同樣的問題,所以我相信終端模擬器和父 shell 是不是原因,我需要自己配置按鍵綁定。
如何配置基本的 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 }