Partilhar via


Usando manipuladores de chaves PSReadLine

O módulo PSReadLine fornece manipuladores de teclas que mapeiam funções PSReadLine para acordes de teclado. Os acordes de teclado são uma sequência de um ou mais pressionamentos de teclas realizados simultaneamente. 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 teclas e associações de teclas

Os nomes das notas no acorde correspondem aos nomes da [System.ConsoleKey] enumeração. Para obter mais informações, consulte a documentação System.ConsoleKey . Por exemplo, o nome da tecla 2 é [System.ConsoleKey]D2, 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 que o método ReadKey() retorna 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

Observação

O parâmetro Chord é sensível a maiúsculas e 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 escreves Alt+?, vês o seguinte prompt:

what-is-key:

Quando carregas na tecla Backspace, obténs 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 tecla gerados pelo seu teclado podem variar dependendo do sistema operativo e da aplicação do terminal que está a usar.

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 Tecla Meta. 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.

Observação

Os passos exatos variam consoante as versões do macOS e as aplicações do terminal. Estes exemplos foram capturados no macOS Ventura 13.2.1 e iTerm2 v3.4.16.

Aplicações Linux

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

  • + Ctrl[ é o mesmo que Escape

  • + CtrlA barra de espaço gera os códigos de teclas para Ctrl+D2. Se quiseres mapear uma função para abarra de espaço+, tens de 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. As ligações de teclas podem ser diferentes em plataformas que não são 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

ArgumentoDeComandoSelecionar

Seleciona o próximo argumento na linha de comando.

Acorde padrão: Alt+a

Podes ter um comando no teu histórico que queres 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 por sua vez: myRGName, eastus, myVM.

GotoBrace

Move o cursor para a chave correspondente.

Acorde padrão: Ctrl+]

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

ArgumentoNumérico

Inicie ou acumule um argumento numérico que é utilizado para repetir uma ação de tecla o número especificado de vezes.

Acorde padrão: Alt+0 a Alt+9

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

Ver também