Compartilhar via


Usando a conclusão de tabulação no shell

O PowerShell fornece preenchimentos de entrada para fornecer dicas, habilitar a descoberta e acelerar a entrada de informações. Nomes de comando, nomes de parâmetro, valores de argumento e caminhos de arquivo podem ser concluídos pressionando a tecla Tab .

A tecla Tab é a associação de chave padrão no Windows. O PSReadLine também fornece uma função vinculada ao Ctrl+Espaço. A MenuComplete função exibe uma lista de conclusões correspondentes abaixo da linha de comando.

As associações de chave podem ser alteradas usando cmdlets PSReadLine ou o aplicativo que está hospedando o PowerShell. Os keybindings podem ser diferentes em plataformas que não são do Windows. Para obter mais informações, consulte about_PSReadLine_Functions.

Recursos de conclusão automática incorporados

O PowerShell permite a completação de tabulação para muitos aspectos da experiência de linha de comando.

Conclusão do nome do arquivo

Para preencher automaticamente um nome de arquivo ou caminho a partir das opções disponíveis, digite parte do nome e pressione a tecla Tab. O PowerShell expande automaticamente o nome para a primeira correspondência encontrada. Pressionar a tecla Tab novamente passa por todas as opções disponíveis a cada pressionamento de tecla.

Conclusão do nome do comando e do parâmetro

A expansão com Tab de nomes de cmdlet é ligeiramente diferente. Para usar a expansão com Tab em um nome de cmdlet, digite a primeira parte inteira do nome (o verbo) e o hífen que o segue. Você pode preencher mais do mesmo nome de uma correspondência parcial. Por exemplo, se você digitar get-co e pressionar a tecla Tab , o PowerShell expandirá automaticamente o que você digitou para o Get-Command cmdlet (observe que ele também altera o caso de letras para o formulário padrão). Se você pressionar a tecla Tab novamente, o PowerShell a substituirá pelo próximo cmdlet Get-Contentcorrespondente. A funcionalidade de autocompletar também funciona para resolver aliases do PowerShell e programas nativos.

O gráfico a seguir mostra exemplos de preenchimento de guia e menu.

Exemplos de preenchimento de guia e menu

Outros aprimoramentos de conclusão ao pressionar a tecla Tab

Cada nova versão do PowerShell inclui melhorias na conclusão da guia que corriem bugs e melhoram a usabilidade.

PowerShell 7.0

  • A conclusão automática de tabulação resolve atribuições de variáveis que são enumerações ou estão restritas por tipo.
  • A conclusão com a tecla Tab expande cmdlets abreviados e funções. Por exemplo, i-psdf<tab> retorna Import-PowerShellDataFile

PowerShell 7.2

  • Corrigir a completação automática de tabulação para artigos não localizados about*
  • Corrigir o splatting sendo tratado como parâmetro posicional nas autocompleções
  • Adicionar completamentos para palavras-chave da ajuda baseada em comentários
  • Adicionar conclusão para #Requires declarações
  • Adicionar completar a tabulação para View o parâmetro de Format-* cmdlets
  • Adicionar suporte para concluidores de argumentos baseados em classe

PowerShell 7.3

  • Corrigir a conclusão da guia dentro do bloco de script especificado para o ValidateScriptAttribute
  • Adição da conclusão da guia para rótulos de loop após break e continue
  • Melhorar o aperfeiçoamento do Hashtable em vários cenários
    • Distribuição de parâmetros
    • Parâmetro de argumentos para Invoke-CimMethod
    • Parâmetro FilterHashtable para Get-WinEvent
    • Parâmetro de propriedade para os cmdlets CIM
    • Remove duplicatas de cenários de conclusão de membro
  • Suporte a barras de encaminhamento na conclusão do compartilhamento de rede (caminho UNC)
  • Melhorar a conclusão automática de membros
  • Priorizar ValidateSet autocompletação em vez de enumerações para parâmetros
  • Adicionar suporte de inferência de tipo para métodos genéricos com parâmetros de tipo
  • Melhorar a inferência e as conclusões do tipo
    • Permite que os métodos sejam mostrados nos resultados de conclusão para ForEach-Object -MemberName
    • Impede a conclusão em expressões que retornam void como ([void]"")
    • Permite que construtores de classe não padrão apareçam quando a conclusão da classe é baseada no AST

Outras maneiras de aprimorar a conclusão da guia de parâmetros de comando

A expansão de guia interna é controlada pela função interna TabExpansion ou TabExpansion2. É possível criar funções ou módulos que substituam o comportamento padrão dessas funções. Você pode encontrar exemplos na Galeria do PowerShell pesquisando a palavra-chave TabExpansion .

Usando os atributos ValidateSet ou ArgumentCompletions com parâmetros

O ArgumentCompletions atributo permite que você adicione valores de conclusão de guia a um parâmetro específico. O ArgumentCompletions atributo é semelhante a ValidateSet. Ambos os atributos levam uma lista de valores a serem apresentados quando o usuário pressiona Tab após o nome do parâmetro. No entanto, ao contrário ValidateSet, os valores não são validados.

Para obter mais informações, consulte:

Usando o ArgumentCompleter atributo ou Register-ArgumentCompleter com parâmetros

Um concluídor de argumento é um bloco de script ou função que fornece a conclusão da guia dinâmica para valores de parâmetro.

O ArgumentCompleter atributo permite que você registre uma função que fornece valores de conclusão de guia para o parâmetro. A função completer de argumento deve estar disponível para a função que contém o parâmetro com o ArgumentCompleter atributo. Normalmente, a função é definida no mesmo script ou módulo. Para obter mais informações, consulte ArgumentCompleter.

O cmdlet Register-ArgumentCompleter registra um bloco de script como uma função para completar argumentos durante a execução para qualquer comando que você especificar. O uso Register-ArgumentCompleter permite que você defina os concluidores de argumentos fora do script ou módulo ou para comandos nativos. Para obter mais informações, consulte Register-ArgumentCompleter .

IntelliSense preditivo no PSReadLine

O PSReadLine 2.1.0 introduziu o recurso IntelliSense Preditivo. O IntelliSense Preditivo fornece sugestões para comandos completos com base em itens do histórico PSReadLine.

O PSReadLine 2.2.2 estende o poder do IntelliSense Preditivo adicionando suporte para módulos de plug-in que usam lógica avançada para fornecer sugestões para comandos completos. O módulo Az.Tools.Predictor foi o primeiro plug-in do Predictive IntelliSense. Ele usa o Machine Learning para prever qual comando do Azure PowerShell você deseja executar e os parâmetros que você deseja usar.

Para obter mais informações, consulte Como usar previsores.