Vivo en Arch Linux (Manjaro) pero estoy empezando a aprender Powershell. He instalado powershell desde AUR con yay -S powershell
. Sin embargo, cuando uso PowerShell ( pwsh
), descubrí que las combinaciones de teclas no funcionan. Al presionar arriba/abajo no se pasa por el historial de comandos, y al presionar TAB
y ctrl-space
no se activa la finalización de tabulación.
Estoy usando presteza con zsh. Sin embargo, también lo probé xterm pwsh
y surge el mismo problema, por lo que creo que el emulador de terminal y el shell principal sonnola causa, y que necesito configurar las combinaciones de teclas yo mismo.
¿Cómo configuro las combinaciones de teclas básicas de PowerShell?
Respuesta1
Las combinaciones de teclas de PowerShell están controladas por el PSReadLine
módulo que se envía con él. El módulo proporciona varias funciones, como coloración de sintaxis, una buena experiencia multilínea, historial y más (consulte:https://github.com/PowerShell/PSReadLine).
Lo que busca son los controladores clave:
PS> Set-PSReadLineKeyHandler -Key Tab -Function Complete
Asegúrese de consultar su documentación para obtener una descripción completa de los parámetros de configuración admitidos:
PS> help about_PSReadLine
# Or list the key current handlers and options:
PS> Get-PSReadLineKeyHandler
PS> Get-PSReadLineOption
Puedes encontrar una configuración de ejemplo en su repositorio de git:https://github.com/PowerShell/PSReadLine/blob/master/PSReadLine/SamplePSReadLineProfile.ps1. Todas las personalizaciones de PSReadline deben agregarse a su perfil de PowerShell para conservarlas en todas las sesiones:
PS> echo $PROFILE
/Users/megamorf/.config/powershell/Microsoft.PowerShell_profile.ps1
Esto es lo que normalmente tengo en mi perfil de 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 }