Compartilhar via


Usar manipuladores de chave PSReadLine

O módulo PSReadLine fornece manipuladores de chave que mapeiam funções PSReadLine para acordes de teclado. Os acordes de teclado são uma sequência de uma ou mais teclas pressionadas simultaneamente. Por exemplo, a combinação de teclas Ctrl+Barra de espaço é a combinação das teclas Ctrl e Barra de espaço pressionadas ao mesmo tempo. Uma função PSReadLine é uma ação predefinida que pode ser executada em uma linha de comando. Por exemplo, a MenuComplete função permite que você escolha entre uma lista de opções em um menu para concluir a entrada na linha de comando.

O PSReadLine tem vários manipuladores de chave predefinidos associados por padrão. Você também pode definir seus próprios manipuladores de chaves personalizados. Execute o comando a seguir para listar os manipuladores de chave que estão definidos no momento.

Get-PSReadLineKeyHandler

Você também pode obter uma lista de todas as funções PSReadLine não associadas que estão disponíveis para serem associadas a um acorde de chave.

Get-PSReadLineKeyHandler -Unbound

Você pode usar o Set-PSReadLineKeyHandler cmdlet para associar uma função a um manipulador de chaves. O comando a seguir associa a função MenuComplete à combinação de teclas Ctrl+barra de espaço.

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

Localizando nomes-chave e associações de acordes

Os nomes das teclas no acorde correspondem aos nomes na [System.ConsoleKey] enumeração. Para obter mais informações, consulte a documentação do System.ConsoleKey . Por exemplo, o nome da chave 2 é [System.ConsoleKey]D2, enquanto o nome da chave 2 no teclado numérico é NumPad2. Você pode usar o [System.Console]::ReadKey() método para localizar o nome da tecla pressionada.

[System.Console]::ReadKey()

A saída a seguir mostra as informações retornadas pelo ReadKey() método para o acorde de tecla Ctrl+2 .

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

Para os cmdlets do manipulador de chaves PSReadLine , esse acorde é representado como Ctrl+D2. O exemplo a seguir associa esse acorde a uma função.

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

Você pode associar vários cabos a uma única função. Por padrão, a BackwardDeleteChar função é associada a dois 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

Observação

O parâmetro Chord é sensível a maiúsculas. Ou seja, você pode criar associações diferentes para Ctrl+X e Ctrl+x.

No Windows, você também pode usar o acorde de tecla Alt+? para mostrar a função associada ao próximo acorde de tecla inserido. Ao digitar Alt+?, você verá o seguinte prompt:

what-is-key:

Quando você atinge a chave do Backspace , obtém a seguinte resposta:

Backspace: BackwardDeleteChar - Delete the character before the cursor

Manipuladores de chaves em computadores não Windows

Os códigos de chave gerados pelo teclado podem ser diferentes dependendo do sistema operacional e do aplicativo terminal que você está usando.

macOS

O teclado Macintosh não tem uma tecla Alt como sistemas Windows e Linux. Em vez disso, ele tem a chave ⌥ Opção . O macOS usa essa chave de forma diferente da chave Alt em outros sistemas. No entanto, você pode configurar os aplicativos terminal e iTerm2 no macOS para tratá-lo como uma chave Alt .

Configurando o aplicativo terminal

Abra a janela Configurações da barra de aplicativos no Terminal.app. Selecione Perfis e escolha o perfil que você deseja configurar. Selecione a guia Teclado das opções de configuração. Abaixo da lista de chaves, selecione a Opção Usar como Tecla Meta. Essa configuração permite que a chave ⌥ Opção atue como Alt no aplicativo terminal.

Captura de tela das configurações de Terminal.app.

Configurando o aplicativo iTerm2

Abra a janela Configurações na Barra de Aplicativos no iTerm.app. Selecione Perfis e escolha o perfil que você deseja configurar. Selecione a guia Chaves das opções de configuração. Selecione a opção Esc+ para as configurações chave de opção esquerda e chave de opção direita . Essa configuração permite que a chave ⌥ Opção atue como Alt no aplicativo iTerm.

Captura de tela das configurações de iTerm.app.

Observação

As etapas exatas variam dependendo das versões do macOS e dos aplicativos de terminal. Esses exemplos foram capturados no macOS Ventura 13.2.1 e iTerm2 v3.4.16.

Linux

Em plataformas Linux, o código de chave gerado pode ser diferente de outros sistemas. Por exemplo:

  • Ctrl+[ é o mesmo que Escape

  • Ctrl+Barra de espaço gera os códigos de tecla para Ctrl+D2. Se você quiser mapear uma função para Ctrl+Barra de Espaço, deverá usar a combinaçãoCtrl+D2.

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

Use o ReadKey() método para verificar os códigos de chave gerados pelo teclado.

Manipuladores de chaves comumente usados

Aqui estão alguns manipuladores de chaves comumente usados que são associados por padrão no Windows. Os keybindings podem ser diferentes em plataformas que não são do Windows.

Conclua a entrada selecionando em um menu de possíveis valores de conclusão.

Acorde padrão: Ctrl+Spacebar

O exemplo a seguir mostra o menu de conclusões possíveis para comandos que começam com 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 as teclas de direção para selecionar a conclusão desejada. Pressione a tecla Enter para concluir a entrada. Conforme você percorre as seleções, a ajuda para o comando selecionado é exibida abaixo do menu.

Limpar Tela

Essa função limpa a tela semelhante aos comandos cls ou clear.

Acorde padrão: Ctrl+l

ArgumentoDeComandoDeSeleção

Seleciona o próximo argumento na linha de comando.

Acorde padrão: Alt+a

Você pode ter um comando em seu histórico que deseja executar novamente com valores de parâmetro diferentes. Você pode usar o acorde para percorrer cada parâmetro e alterar o valor conforme necessário.

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

Pressionar Alt+a seleciona o próximo argumento de parâmetro por sua vez: myRGName, eastus, myVM.

GotoBrace

Move o cursor para o colchete correspondente.

Acorde padrão: Ctrl+]

A função GotoBrace move o cursor para o colchete de fechamento que corresponde ao colchete na posição atual do cursor na linha de comando. A função funciona para colchetes ([]), chaves ({}) e parênteses (()).

DigitArgument

Inicie ou acumule um argumento numérico usado para repetir um pressionamento de tecla pelo número de vezes especificado.

Acorde padrão: Alt+0 até Alt+9

Por exemplo, digitar Alt+4+# entra #### na linha de comando.

Consulte também