Partilhar via


Usando manipuladores de chaves PSReadLine

O módulo PSReadLine fornece manipuladores de teclas que mapeiam funções PSReadLine para acordes de teclado. Acordes de teclado são uma sequência de um ou mais pressionamentos de teclas que são pressionados ao mesmo tempo. Por exemplo, o acorde 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 a partir de uma lista de opções de um menu completar a entrada na linha de comando.

PSReadLine tem vários manipuladores de chave predefinidos que são vinculados 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 chaves que estão definidos no momento.

Get-PSReadLineKeyHandler

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

Get-PSReadLineKeyHandler -Unbound

Você pode usar o Set-PSReadLineKeyHandler cmdlet para vincular uma função a um manipulador de chaves. O comando a seguir vincula a MenuComplete função ao acorde Ctrl+Spacebar.

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

Encontrar nomes de chaves e ligações de acordes

Os nomes das teclas no acorde são definidos pela [System.ConsoleKey] enumeração. Para obter mais informações, consulte a documentação System.ConsoleKey . Por exemplo, o nome da tecla 2 é D2[System.ConsoleKey] , enquanto o nome da tecla 2 no teclado numérico é NumPad2. Você pode usar o [System.Console]::ReadKey() método para encontrar o nome da tecla que você pressionou.

[System.Console]::ReadKey()

A saída a seguir mostra as informações retornadas ReadKey() pelo 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 vincula esse acorde a uma função.

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

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

Nota

O parâmetro Chord diferencia maiúsculas de minúsculas. Ou seja, você pode criar diferentes ligações para Ctrl+X e Ctrl+x.

No Windows, você também pode usar o acorde de tecla Alt+? para mostrar a função vinculada ao próximo acorde de tecla digitado. Quando você digita Alt+?, você vê o seguinte prompt:

what-is-key:

Quando você pressiona a tecla Backspace, você recebe a seguinte resposta:

Backspace: BackwardDeleteChar - Delete the character before the cursor

Manipuladores de chaves em computadores que não sã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 os sistemas Windows e Linux. Em vez disso, tem a tecla ⌥ Option . O macOS usa essa chave de forma diferente da tecla Alt em outros sistemas. No entanto, você pode configurar o terminal e os aplicativos iTerm2 no macOS para tratá-lo como uma tecla Alt .

Configurando o aplicativo Terminal

Abra a janela Configurações na barra de aplicativos no Terminal.app. Selecione Perfis e escolha o perfil que deseja configurar. Selecione a guia Teclado das opções de configuração. Abaixo da lista de chaves, selecione a configuração Usar opção como meta chave . Esta definição permite que a tecla ⌥ Option atue como Alt na aplicação Terminal.

Captura de ecrã das definições 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 deseja configurar. Selecione a guia Teclas das opções de configuração. Selecione a opção Esc+ para as configurações Tecla de opção esquerda e Tecla de opção direita. Esta definição permite que a tecla ⌥ Option atue como Alt na aplicação iTerm.

Captura de ecrã das definições iTerm.app.

Nota

Os passos exatos podem variar dependendo das versões do macOS e das aplicações de terminal. Estes 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 Spacebar gera os códigos de teclas para Ctrl+D2.+ Se você quiser mapear uma função Ctrl+Barra de espaço você deve usar o acorde .Ctrl+D2

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

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

Manipuladores de chaves comumente usados

Aqui estão alguns manipuladores de chaves comumente usados que são vinculados por padrão no Windows. Observe que a vinculação de chave pode ser diferente em plataformas que não sejam 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 possíveis conclusões para comandos começando 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 seta para selecionar a conclusão desejada. Pressione a tecla Enter para concluir a entrada. À medida que você se move pelas seleções, a ajuda para o comando selecionado é exibida abaixo do menu.

Ecrã Limpo

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

Acorde padrão: Ctrl+l

SelectCommandArgument

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 a chave correspondente.

Acorde padrão: Ctrl+]

Esta função move o cursor para a chave de fecho que corresponde à chave na posição atual do cursor na linha de comandos. A função funciona para colchetes ([]), chaves ({}) e parênteses, (()).

DigitArgument

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

Acorde padrão: Alt+0 através de Alt+9

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

Consulte também