Partilhar via


Usando o autocompletar por tabulação no shell

O PowerShell fornece completamentos de entrada para sugerir dicas, facilitar a descoberta e acelerar a introdução de dados. Nomes de comandos, nomes de parâmetros, valores de argumentos e caminhos de ficheiros podem ser todos concluídos pressionando a tecla Tab .

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

As ligações de teclas podem ser alteradas usando os cmdlets PSReadLine ou a aplicação que hospeda o PowerShell. As ligações de teclas podem ser diferentes em plataformas que não sejam Windows. Para obter mais informações, consulte about_PSReadLine_Functions.

Recursos internos de preenchimento de guias

O PowerShell permite a conclusão de tabulação para muitos aspetos da experiência da linha de comandos.

Conclusão do nome do ficheiro

Para preencher um nome de arquivo ou caminho a partir das opções disponíveis automaticamente, 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 percorre todas as opções disponíveis a cada pressionamento de tecla.

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

A expansão da guia de nomes de cmdlets é ligeiramente diferente. Para usar a expansão de tabulação num nome de cmdlet, digite toda a primeira parte do nome (o verbo) e o hífen que o segue. Pode introduzir mais partes do nome para conseguir uma correspondência parcial. Por exemplo, se escreveres get-co e depois carregares na tecla Tab , o PowerShell expande automaticamente o que escreveste para o Get-Command cmdlet (repare que também altera o caso das letras para a sua forma padrão). Se carregares novamente na tecla Tab , o PowerShell substitui-o pelo próximo cmdlet correspondente, Get-Content. O preenchimento automático com a tecla Tab também funciona para resolver aliases do PowerShell e executáveis nativos.

O gráfico a seguir mostra exemplos de preenchimento de guias e menus.

Exemplos de terminação de tabs e menus

Outros aprimoramentos de conclusão de guia

Cada nova versão do PowerShell inclui melhorias no preenchimento de guias que corrigem bugs e melhoram a usabilidade.

PowerShell 7.0

  • A conclusão de tabulação resolve atribuições variáveis que são enums ou são restritas a tipos
  • Conclusão de tabulação expande cmdlets e comandos abreviados. Por exemplo, i-psdf<tab> retorna Import-PowerShellDataFile

PowerShell 7.2

  • Corrigir a conclusão de tabulação para artigos não localizados about*
  • Corrigir o tratamento de splatting como parâmetro posicional em completações
  • Adicionar completamentos para palavras-chave da Ajuda com base em comentários
  • Adicionar autocompletar para #Requires declarações
  • Adicionar conclusão de guia para o parâmetro View dos cmdlets Format-*
  • Adicionar suporte para completadores de argumentos baseados em classe

PowerShell 7.3

  • Corrigir o preenchimento da guia dentro do bloco de script especificado para o ValidateScriptAttribute
  • Foi adicionado conclusão automática de tabulação para etiquetas de loop após break e continue
  • Melhore a conclusão do Hashtable em vários cenários
    • Distribuição de parâmetros
    • Parâmetro de 'Arguments' para Invoke-CimMethod
    • Parâmetro FilterHashtable para Get-WinEvent
    • Parâmetro de propriedade para os cmdlets CIM
    • Remove duplicados dos cenários de conclusão dos membros
  • Suporte a barras diagonais no preenchimento automático do caminho de compartilhamento de rede (caminho UNC)
  • Melhorar o preenchimento automático de membros
  • Priorizar ValidateSet finalizações em vez de enums para parâmetros
  • Adicionar suporte de inferência de tipo para métodos genéricos com parâmetros de tipo
  • Melhorar a inferência de tipo e as conclusões
    • 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 de classe é baseada no AST

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

A expansão de separador incorporada é 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 adicionar valores de conclusão de tabulação a um parâmetro específico. O ArgumentCompletions atributo é semelhante a ValidateSet. Ambos os atributos usam 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 de 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 preenchedor de argumento é um bloco de script ou função que fornece preenchimento dinâmico de guias para valores de parâmetro.

O ArgumentCompleter atributo permite que você registre uma função que fornece valores de conclusão de tabulação para o parâmetro. A função de preenchimento 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 Register-ArgumentCompleter cmdlet regista um bloco de script como uma função para completar argumentos durante a execução para qualquer comando especificado. Usar Register-ArgumentCompleter permite definir completadores de argumentos fora do script ou módulo ou para comandos nativos. Para obter mais informações, consulte Register-ArgumentCompleter.

O IntelliSense preditivo no PSReadLine

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

O PSReadLine 2.2.2 amplia o poder do Predictive IntelliSense 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 para o Predictive IntelliSense. Ele usa o Aprendizado de Máquina para prever qual comando do Azure PowerShell você deseja executar e os parâmetros que deseja usar.

Para obter mais informações, consulte Usando preditores.