Usando preditores em PSReadLine
O PSReadLine 2.1.0 introduziu o recurso Predictive IntelliSense . O IntelliSense preditivo fornece sugestões para 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. A versão mais recente, PSReadLine 2.2.6, permite previsões por padrão.
Usando o IntelliSense Preditivo
Quando o IntelliSense Preditivo está ativado, a sugestão de previsão aparece como texto colorido seguindo o cursor do usuário. As sugestões do Predictive IntelliSense ajudam os 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 plug-ins adicionais específicos do domínio.
As imagens anteriores mostram o padrão InlineView
da sugestão. Pressionar a tecla Seta para a direita aceita uma sugestão embutida. Depois de aceitar a sugestão, você pode editar a linha de comando antes de pressionar Enter para executar o comando.
PSReadLine também oferece uma ListView
apresentação das sugestões.
Quando estiver na vista de lista, pode utilizar as teclas de seta para percorrer as sugestões disponíveis. O modo de exibição de lista também mostra a origem da previsão.
PSReadLine assume como InlineView
padrão . Você pode alternar entre InlineView
e ListView
pressionando a tecla F2 . Você também pode usar o parâmetro PredictionViewStyle de para alterar o modo de Set-PSReadLineOption
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.
Para instalar o PSReadLine usando o PowerShellGet:
Install-Module -Name PSReadLine
Ou instale usando o novo módulo PowerShellGet v3 :
Install-PSResource -Name PSReadLine
O PSReadLine pode ser instalado no Windows PowerShell 5.1 ou no PowerShell 7 ou superior. Para usar plug-ins de previsão, você deve estar executando 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 Predictive IntelliSense é ativado por padrão, dependendo das seguintes condições:
- Se o Terminal Virtual (VT) for suportado e PSReadLine em execução no PowerShell 7.2 ou superior, PredictionSource será definido como
HistoryAndPlugin
- Se VT for suportado e PSReadLine em execução no PowerShell anterior à 7.2, PredictionSource será definido como
History
- Se VT não for suportado, 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
Nota
As previsões baseadas na história vêm da história mantida pelo PSReadLine. Esse histórico é mais abrangente do que o histórico baseado em sessão que você pode ver usando Get-History
o . Para obter mais informações, consulte a seção Histórico de comandos do 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 o seu próprio. A cor padrão do texto de previsão 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 PSReadLine, consulte Set-PSReadLineOption.
Alterar ligações de teclas
PSReadLine contém funções para navegar e aceitar previsões. Por exemplo:
AcceptSuggestion
- Aceite a sugestão atual em linhaAcceptNextSuggestionWord
- Aceite a próxima palavra da sugestão inlineAcceptSuggestion
é construído dentro doForwardChar
, que está vinculado à Seta para a direita por padrãoAcceptNextSuggestionWord
é construído dentro da funçãoForwardWord
, que pode ser vinculada a Ctrl+f
Você pode usar o Set-PSReadLineKeyHandler
cmdlet para alterar associações de chave.
Set-PSReadLineKeyHandler -Chord "Ctrl+f" -Function ForwardWord
Com essa ligaçã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. Pode ligar outras teclas a AcceptSuggestion
e AcceptNextSuggestionWord
para funcionalidades semelhantes. Por exemplo, você pode querer fazer com que o RightArrow aceite 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 plug-ins de previsão
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 e instruções de instalação, consulte Anunciando a disponibilidade geral do Az.Tools.Predictor.
O módulo CompletionPredictor adiciona uma experiência IntelliSense para qualquer coisa que possa ser concluída com tabulações no PowerShell. Com PSReadLine definido como InlineView
, você obtém a experiência normal de conclusão de guias. Ao mudar para ListView
o , você obtém a experiência IntelliSense. Você pode instalar o módulo CompletionPredictor da Galeria do PowerShell.
Como observado anteriormente, ListView
mostra a fonte da previsão. Se você tiver vários plug-ins instalados, as previsões serão agrupadas por origem, com Histórico listado primeiro, seguido por cada plug-in na ordem em que foram carregados.
Criando seu próprio módulo de previsão
Você pode escrever seu próprio preditor usando C# para criar um módulo PowerShell compilado. O módulo deve implementar a interface System.Management.Automation.Subsystem.Prediction.ICommandPredictor . Esta 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.