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.
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.
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.
MenuComplete
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.