Share via


Usar manipuladores de chave PSReadLine

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

A PSReadLine tem vários manipuladores de teclas predefinidos associados por padrão. Você também pode definir seus próprios manipuladores de teclas personalizados. Execute o seguinte comando para listar os manipuladores de teclas 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 uma combinação de teclas.

Get-PSReadLineKeyHandler -Unbound

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

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

Como localizar nomes de teclas e associações de combinação

Os nomes das teclas na combinação são definidos pela enumeração [System.ConsoleKey]. Para obter mais informações, confira a documentação de System.ConsoleKey. Por exemplo, o nome da tecla 2 em [System.ConsoleKey] é D2, enquanto o nome da tecla 2 no teclado numérico é NumPad2. Você pode usar o método [System.Console]::ReadKey() para localizar o nome da tecla pressionada.

[System.Console]::ReadKey()

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

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

Para os cmdlets do manipulador de teclas de PSReadLine, essa combinação é representada como Ctrl+D2. O exemplo a seguir associa essa combinação a uma função.

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

Você pode associar várias combinações a uma única função. Por padrão, a função BackwardDeleteChar é associada a duas combinações.

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 diferencia maiúsculas de minúsculas. Ou seja, você pode criar associações diferentes para Ctrl+X e Ctrl+x.

No Windows, você também pode usar a combinação de tecla Alt+? para mostrar a função associada à próxima combinação de tecla inserida. Ao digitar Alt+? você vê o seguinte prompt:

what-is-key:

Quando você clica na tecla Backspace, obtém a seguinte resposta:

Backspace: BackwardDeleteChar - Delete the character before the cursor

Manipuladores de teclas em computadores não Windows

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

macOS

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

Configurando o aplicativo de Terminal

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

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

Como configurar o aplicativo iTerm2

Abra a janela de Configurações na Barra de Aplicativos do iTerm.app. Selecione Perfis e escolha o perfil que você deseja configurar. Selecione a guia Teclas nas opções de configuração. Selecione a opção Esc+ para as configurações de Tecla de Opção Esquerda e Tecla de Opção Direita. Essa configuração permite que a tecla de ⌥ Opção atue como Alt no aplicativo iTerm.

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

Observação

As etapas exatas podem variar 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 tecla gerado pode ser diferente de outros sistemas. Por exemplo:

  • Ctrl+[ é o mesmo que Escape

  • Ctrl+Barra de espaços gera os códigos de chave para Ctrl+D2. Para mapear uma função Ctrl+Barra de espaços, use a combinação Ctrl+D2.

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

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

Manipuladores de teclas comumente usados

Veja aqui alguns manipuladores de teclas comumente usados que são associados por padrão no Windows. Observe que a associação de tecla pode ser diferente em plataformas não Windows.

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

Combinação padrão: Ctrl+Spacebar

O seguinte exemplo mostra o menu de possíveis conclusões 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. À medida que você percorre as seleções, a ajuda para o comando selecionado é exibida abaixo do menu.

ClearScreen

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

Combinação padrão: Ctrl+l

SelectCommandArgument

Seleciona o próximo argumento na linha de comando.

Combinação padrão: Alt+a

Você pode ter um comando em seu histórico que deseja executar novamente com valores de parâmetros 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: myRGName, eastus, myVM.

GotoBrace

Move o cursor para a chave correspondente.

Combinação padrão: Ctrl+]

Essa função move o cursor para a chave de fechamento que corresponde à chave 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 o número especificado de vezes.

Combinação padrão: de Alt+0 a Alt+9

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

Confira também