Compartilhar via


Usando previsores 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. A versão mais recente, PSReadLine 2.2.6, habilita previsões por padrão.

Usando o IntelliSense Preditivo

Quando o Predictive IntelliSense está habilitado, a sugestão de previsão aparece como texto colorido seguindo o cursor do usuário. As sugestões do Predictive IntelliSense ajudam usuários novos e experientes do PowerShell a descobrir, editar e executar comandos completos com base em previsões correspondentes. As sugestões podem vir do histórico do usuário e de outros plug-ins específicos do domínio.

Visualização integrada de uma previsão

A imagem anterior mostra a configuração padrão InlineView da sugestão. Pressionar a tecla RightArrow aceita uma sugestão embutida. Depois de aceitar a sugestão, você pode editar a linha de comando antes de clicar em Enter para executar o comando.

O PSReadLine também oferece uma ListView apresentação das sugestões.

Exibição de lista de previsões

Quando estiver no modo de exibição de lista, você pode usar as teclas de direção para percorrer as sugestões disponíveis. A exibição em lista também mostra a fonte da previsão.

PSReadLine usa InlineViewcomo padrão . Você pode alternar entre InlineView e ListView pressionando a tecla F2 . Você também pode usar o parâmetro Set-PSReadLineOption para alterar a exibição.

Gerenciando o IntelliSense preditivo

Para usar o Predictive IntelliSense, você deve ter uma versão mais recente do PSReadLine instalada. Para obter melhores resultados, instale a versão mais recente do módulo.

Instale o PSReadLine usando o módulo Microsoft.PowerShell.PSResourceGet :

Install-PSResource -Name PSReadLine

O PSReadLine pode ser instalado no Windows PowerShell 5.1 ou no PowerShell 7 ou superior. Para usar plug-ins do predictor, você deve estar rodando no PowerShell 7.2 ou superior. O Windows PowerShell 5.1 pode usar o preditor baseado em histórico.

No PSReadLine 2.2.6, o IntelliSense Preditivo é habilitado por padrão, dependendo das seguintes condições:

  • Se houver suporte para VT (Terminal Virtual) e PSReadLine em execução no PowerShell 7.2 ou superior, PredictionSource será definido como HistoryAndPlugin
  • Se houver suporte para VT e PSReadLine em execução no PowerShell com mais de 7.2, PredictionSource será definido como History
  • Se não houver suporte para VT, PredictionSource será definido como None.

Use o seguinte comando para ver a configuração atual:

Get-PSReadLineOption | Select-Object -Property PredictionSource

Você pode alterar a fonte de previsão usando o Set-PSReadLineOption cmdlet com o parâmetro PredictionSource . O PredictionSource pode ser definido como:

  • None
  • History
  • Plugin
  • HistoryAndPlugin

Observação

As previsões baseadas em histórico vêm do histórico mantido pelo PSReadLine. Esse histórico é mais abrangente do que o histórico baseado em sessão que você pode ver usando Get-History. Para obter mais informações, consulte a seção Histórico de Comandos na about_PSReadLine.

Definindo a cor da previsão

Por padrão, as previsões aparecem em texto cinza claro na mesma linha que o usuário está digitando. Para dar suporte às necessidades de acessibilidade, você pode personalizar a cor da previsão. As cores são definidas usando sequências de escape ANSI. Você pode usar $PSStyle para compor sequências de escape ANSI.

Set-PSReadLineOption -Colors @{ InlinePrediction = $PSStyle.Background.Blue }

Ou você pode criar seu próprio. A cor padrão do texto de previsão em cinza-claro pode ser restaurada usando a seguinte sequência de escape ANSI.

Set-PSReadLineOption -Colors @{ InlinePrediction = "`e[38;5;238m" }

Para obter mais informações sobre como definir a cor de previsão e outras configurações do PSReadLine, consulte Set-PSReadLineOption.

Alterando associações de chave

O PSReadLine contém funções para navegar e aceitar previsões. Por exemplo:

  • AcceptSuggestion - Aceite a sugestão embutida atual
  • AcceptNextSuggestionWord - Aceite a próxima palavra da sugestão embutida
  • AcceptSuggestion é criado dentro ForwardChar, que está associado a RightArrow por padrão
  • AcceptNextSuggestionWord é criado dentro da função ForwardWord, que pode ser associada a Ctrl+f

Você pode usar o Set-PSReadLineKeyHandler cmdlet para alterar as associações de chave.

Set-PSReadLineKeyHandler -Chord "Ctrl+f" -Function ForwardWord

Com essa associação, pressionar Ctrl+f aceita a próxima palavra de uma sugestão embutida quando o cursor estiver no final da linha de edição atual. Você pode associar outras teclas a AcceptSuggestion e AcceptNextSuggestionWord para funcionalidades semelhantes. Por exemplo, talvez você queira fazer o RightArrow aceitar a próxima palavra da sugestão embutida, em vez de toda a linha de sugestão.

Set-PSReadLineKeyHandler -Chord "RightArrow" -Function ForwardWord

Usando outros plugins de predição

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 e instruções de instalação, consulte Anunciando a disponibilidade geral do Az.Tools.Predictor.

O módulo CompletionPredictor adiciona uma experiência do IntelliSense para qualquer coisa que possa ser concluída usando a tecla Tab no PowerShell. Com o PSReadLine definido como InlineView, você obtém a experiência normal de conclusão da guia. Ao alternar para ListView, você obtém a experiência do IntelliSense. Você pode instalar o módulo CompletionPredictor na Galeria do PowerShell.

IntelliSense do PowerShell com o auxílio do Previsor de Conclusão

Como observado anteriormente, ListView mostra a origem da previsão. Se você tiver vários plug-ins instalados, as previsões serão agrupadas pela origem, com Histórico listado em primeiro lugar, seguido por cada plug-in na ordem de carregamento.

Criando seu próprio módulo de preditor

Você pode escrever seu próprio preditor usando C# para criar um módulo compilado do PowerShell. O módulo deve implementar a interface System.Management.Automation.Subsystem.Prediction.ICommandPredictor . Essa interface declara os métodos usados para consultar resultados de previsão e fornecer comentários.

Para obter mais informações, consulte Como criar um preditor de linha de comando.