Compartir a través de


Uso de los controladores de teclas de PSReadLine

El módulo PSReadLine proporciona controladores de teclas que asignan funciones de PSReadLine a acordes de teclado. Los acordes de teclado son una secuencia de una o varias pulsaciones de teclas que se presionan al mismo tiempo. Por ejemplo, el acorde Ctrl+Barra espaciadora es la combinación de las teclas Ctrl y Barra espaciadora presionadas al mismo tiempo. Una función de PSReadLine es una acción predefinida que se puede realizar en una línea de comandos. Por ejemplo, la función MenuComplete permite elegir entre una lista de opciones de un menú que completa la entrada en la línea de comandos.

PSReadLine tiene varios controladores de teclas predefinidos que están enlazados de forma predeterminada. También puede definir sus propios controladores de teclas personalizados. Ejecute el siguiente comando para enumerar los controladores de teclas que están definidos actualmente.

Get-PSReadLineKeyHandler

También puede obtener una lista de todas las funciones de PSReadLine que están disponibles para enlazarlas a un acorde de teclas.

Get-PSReadLineKeyHandler -Unbound

Puede usar el cmdlet Set-PSReadLineKeyHandler para enlazar una función a un controlador de teclas. El siguiente comando enlaza la función MenuComplete al acorde Ctrl+Barra espaciadora.

Set-PSReadLineKeyHandler -Chord 'Ctrl+Spacebar' -Function MenuComplete

Búsqueda de nombres de teclas y enlaces de acordes

Los nombres de las teclas del acorde se definen mediante la enumeración [System.ConsoleKey]. Para obtener más información, consulte la documentación de System.ConsoleKey. Por ejemplo, el nombre de la tecla 2 de [System.ConsoleKey] es D2, mientras que el nombre de la tecla 2 en el teclado numérico es NumPad2. Puede usar el método [System.Console]::ReadKey() para buscar el nombre de la tecla que ha presionado.

[System.Console]::ReadKey()

En la salida siguiente se muestra la información devuelta por el método ReadKey() para el acorde de teclas Ctrl+2.

KeyChar Key Modifiers
------- --- ---------
        D2   Control

Para los cmdlets del controlador de teclas de PSReadLine, este acorde se representa como Ctrl+D2. En el ejemplo siguiente se enlaza este acorde a una función.

Set-PSReadLineKeyHandler -Chord 'Ctrl+D2' -Function MenuComplete

Puede enlazar varios acordes a una sola función. De forma predeterminada, la función BackwardDeleteChar está enlazada a dos acordes.

Get-PSReadLineKeyHandler -Chord Backspace, Ctrl+h
Key       Function           Description
---       --------           -----------
Backspace BackwardDeleteChar Delete the character before the cursor
Ctrl+h    BackwardDeleteChar Delete the character before the cursor

Nota:

El parámetro Chorddistingue mayúsculas de minúsculas. Esto significa que puede crear enlaces diferentes para Ctrl+X y Ctrl+x.

En Windows, también puede usar el acorde de teclas Alt+? para mostrar la función enlazada al siguiente acorde de teclas que escriba. Al escribir Alt+?, verá el siguiente aviso:

what-is-key:

Al presionar la tecla Retroceso, obtendrá la siguiente respuesta:

Backspace: BackwardDeleteChar - Delete the character before the cursor

Controladores de teclas en equipos que no son Windows

Los códigos de teclas generados por el teclado pueden ser diferentes en función del sistema operativo y la aplicación de terminal que use.

macOS

El teclado Macintosh no tiene una tecla Alt como los sistemas Windows y Linux. En su lugar, tiene la tecla ⌥ Opción. macOS usa esta tecla de forma diferente a la tecla Alt en otros sistemas. Sin embargo, puede configurar las aplicaciones de terminal e iTerm2 en macOS para tratarlas como una tecla Alt.

Configuración de la aplicación de terminal

Abra la ventana Configuración desde la barra de aplicaciones en Terminal.app. Seleccione Perfiles y elija el perfil que desea configurar. Seleccione la pestaña Teclado en las opciones de configuración. Debajo de la lista de teclas, seleccione la configuración Usar Opción como tecla modificadora. Esta configuración permite que la tecla ⌥ Opción actúe como Alt en la aplicación de terminal.

Captura de pantalla de la configuración de Terminal.app

Configuración de la aplicación iTerm2

Abra la ventana Configuración desde la barra de aplicaciones en iTerm.app. Seleccione Perfiles y elija el perfil que desea configurar. Seleccione la pestaña Teclas en las opciones de configuración. Seleccione la opción Esc+ para la configuración Tecla Opción izquierda y Tecla Opción derecha. Esta configuración permite que la tecla ⌥ Opción actúe como Alt en la aplicación iTerm.

Captura de pantalla de la configuración de iTerm.app

Nota:

Los pasos exactos pueden variar en función de las versiones de macOS y las aplicaciones de terminal. Estos ejemplos se capturaron en macOS Ventura 13.2.1 e iTerm2 v3.4.16.

Linux

En las plataformas Linux, el código de teclas generado puede ser diferente de otros sistemas. Por ejemplo:

  • Ctrl+[ tiene la misma función que Escape.

  • Ctrl+Barra espaciadora genera los códigos de teclas para Ctrl+D2. Si desea asignar una función Ctrl+Barra espaciadora, debe usar el acorde Ctrl+D2.

    Set-PSReadLineKeyHandler -Chord 'Ctrl+D2' -Function MenuComplete
    

Use el método ReadKey() para comprobar los códigos de teclas generados por el teclado.

Controladores de teclas usados habitualmente

Estos son algunos controladores de teclas usados habitualmente que están enlazados de forma predeterminada en Windows. Tenga en cuenta que el enlace de teclas puede ser diferente en plataformas que no son de Windows.

Complete la entrada seleccionando una opción en un menú de posibles valores de finalización.

Acorde predeterminado: Ctrl+Spacebar

En el ejemplo siguiente se muestra el menú de posibles finalizaciones para comandos que comienzan por select.

PS C:\> select<Ctrl+Spacebar>
select                   Select-Object            Select-PSFPropertyValue  Select-Xml
Select-AzContext         Select-PSFConfig         Select-PSMDBuildProject
Select-AzSubscription    Select-PSFObject         Select-String

Select-Object

Use las teclas de dirección para seleccionar la finalización que desee. Presione la tecla ENTRAR para completar la entrada. A medida que avanza por las selecciones, la ayuda del comando seleccionado se muestra debajo del menú.

ClearScreen

Esta función borra la pantalla de forma similar a los comandos cls o clear.

Acorde predeterminado: Ctrl+l

SelectCommandArgument

Selecciona el siguiente argumento en la línea de comandos.

Acorde predeterminado: Alt+a

Es posible que tenga el comando en el historial que desea volver a ejecutar con valores de parámetros diferentes. Puede usar el acorde para recorrer cada parámetro y cambiar el valor según sea necesario.

New-AzVM -ResourceGroupName myRGName -Location eastus -Name myVM

Al presionar Alt+a, se selecciona sucesivamente el siguiente argumento de parámetro: myRGName, eastus, myVM.

GotoBrace

Mueve el cursor a la llave coincidente.

Acorde predeterminado: Ctrl+]

Esta función mueve el cursor a la llave de cierre que coincide con la llave en la posición actual del cursor en la línea de comandos. La función funciona para corchetes ([]), llaves ({}) y paréntesis (()).

DigitArgument

Inicie o acumule un argumento numérico para repetir una pulsación de teclas el número de veces especificado.

Acorde predeterminado: Alt+0 a través de Alt+9

Por ejemplo, al escribir Alt+4+#, se escribe #### en la línea de comandos.

Consulte también