Compartir a través de


Uso de los controladores de teclas de PSReadLine

El módulo PSReadLine proporciona controladores de teclas que asignan funciones PSReadLine a acordes de teclado. Los acordes de teclado son una secuencia de una o más pulsaciones de tecla que se presionan al mismo tiempo. Por ejemplo, el acorde de teclas Ctrl+barra espaciadora es la combinación de las teclas Ctrl y barra espaciadora presionadas al mismo tiempo. Una función PSReadLine es una acción predefinida que se puede realizar en una línea de comandos. Por ejemplo, la MenuComplete función 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 claves predefinidos enlazados de forma predeterminada. También puede definir sus propios controladores de claves personalizados. Ejecute el siguiente comando para enumerar los controladores de claves que están definidos actualmente.

Get-PSReadLineKeyHandler

También puede obtener una lista de todas las funciones PSReadLine sin enlazar a un acorde clave.

Get-PSReadLineKeyHandler -Unbound

Puede usar el Set-PSReadLineKeyHandler cmdlet para enlazar una función a un controlador de claves. El siguiente comando vincula la función MenuComplete a la combinación de teclas Ctrl+ + barra espaciadora.

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

Búsqueda de nombres de teclas y asignaciones de acordes

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

[System.Console]::ReadKey()

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

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

Para los cmdlets del controlador de claves 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 cables a una sola función. De forma predeterminada, la BackwardDeleteChar función 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 Chord distingue mayúsculas de minúsculas. Es decir, puede crear enlaces diferentes para Ctrl+X y Ctrl+x.

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

what-is-key:

Cuando presionas la tecla Retroceso se obtiene la siguiente respuesta:

Backspace: BackwardDeleteChar - Delete the character before the cursor

Controladores de claves en equipos que no son Windows

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

macOS

El teclado Macintosh no tiene una tecla Alt como los sistemas Windows y Linux. En su lugar, tiene la tecla ⌥ Option . macOS usa esta clave 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 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 de las opciones de configuración. Debajo de la lista de claves, seleccione la opción Usar como metaclave . Esta configuración permite que la clave de opción ⌥ actúe como Alt en la aplicación 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 Claves de las opciones de configuración. Seleccione la opción Esc+ para la configuración de la tecla de opción izquierda y la configuración de la tecla de opción derecha. Esta configuración permite que la clave de 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 clave generado puede ser diferente de otros sistemas. Por ejemplo:

  • Ctrl+[ es igual que Escape

  • Ctrl+Barra espaciadora genera los códigos de clave 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 ReadKey() método para comprobar los códigos de tecla generados por el teclado.

Controladores de claves usados habitualmente

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

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

Acorde predeterminado: Ctrl+Spacebar

En el ejemplo siguiente se muestra el menú de posibles completaciones para los comandos que comienzan con 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 navegue por las opciones, la ayuda del comando seleccionado se muestra en la parte inferior del menú.

Pantalla Limpia

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

Acorde predeterminado: Ctrl+l

ArgumentoDeComandoSeleccionar

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

Acorde predeterminado: Alt+a

Es posible que tenga un comando en el historial que desea volver a ejecutar con valores de parámetro 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+, se selecciona el siguiente argumento de parámetro a su vez: myRGName, eastus, myVM.

GotoBrace

Mueve el cursor al paréntesis coincidente.

Acorde predeterminado: Ctrl+]

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

ArgumentoNumérico

Inicie o acumule un argumento numérico para repetir una pulsación de tecla 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