Share via


Uso di predictor in PSReadLine

PSReadLine 2.1.0 ha introdotto la funzionalità DitelliSense predittiva. IntelliSense predittivo fornisce suggerimenti per i comandi completi in base agli elementi della cronologia PSReadLine . PSReadLine 2.2.2 estende la potenza di Predictive IntelliSense aggiungendo il supporto per i moduli plug-in che usano la logica avanzata per fornire suggerimenti per i comandi completi. La versione più recente, PSReadLine 2.2.6, abilita le stime per impostazione predefinita.

Uso di IntelliSense predittivo

Quando IntelliSense predittivo è abilitato, il suggerimento di stima viene visualizzato come testo colorato dopo il cursore dell'utente. I suggerimenti di Predictive IntelliSense consentono agli utenti nuovi ed esperti di PowerShell di individuare, modificare ed eseguire comandi completi in base alle stime corrispondenti. I suggerimenti possono provenire dalla cronologia dell'utente e da plug-in specifici del dominio aggiuntivi.

Visualizzazione inline di una stima

Le immagini precedenti mostrano l'impostazione predefinita InlineView del suggerimento. Premendo rightArrow key accetta un suggerimento inline. Dopo aver accettato il suggerimento, è possibile modificare la riga di comando prima di premere INVIO per eseguire il comando.

PSReadLine offre anche una ListView presentazione dei suggerimenti.

Visualizzazione elenco delle stime

Quando si trova nella visualizzazione elenco, è possibile usare i tasti di direzione per scorrere i suggerimenti disponibili. La visualizzazione Elenco mostra anche l'origine della stima.

PSReadLine per impostazione predefinita è InlineView. È possibile passare da un tasto all'altro InlineView premendo F2.ListView È anche possibile usare il parametro PredictionViewStyle di Set-PSReadLineOption per modificare la visualizzazione.

Gestione di IntelliSense predittivo

Per usare IntelliSense predittivo, è necessario che sia installata una versione più recente di PSReadLine . Per ottenere risultati ottimali, installare la versione più recente del modulo.

Per installare PSReadLine con PowerShellGet:

Install-Module -Name PSReadLine

In alternativa, eseguire l'installazione usando il nuovo modulo PowerShellGet v3 :

Install-PSResource -Name PSReadLine

PSReadLine può essere installato in Windows PowerShell 5.1 o in PowerShell 7 o versione successiva. Per usare i plug-in predictor è necessario essere in esecuzione in PowerShell 7.2 o versione successiva. Windows PowerShell 5.1 può usare il predictor basato sulla cronologia.

In PSReadLine 2.2.6, IntelliSense predittivo è abilitato per impostazione predefinita a seconda delle condizioni seguenti:

  • Se il terminale virtuale (VT) è supportato e PSReadLine in esecuzione in PowerShell 7.2 o versione successiva, PredictionSource è impostato su HistoryAndPlugin
  • Se VT è supportato e PSReadLine in esecuzione in PowerShell precedente alla 7.2, PredictionSource è impostato su History
  • Se VT non è supportato, PredictionSource è impostato su None.

Usare il comando seguente per visualizzare l'impostazione corrente:

Get-PSReadLineOption | Select-Object -Property PredictionSource

È possibile modificare l'origine di stima usando il Set-PSReadLineOption cmdlet con il parametro PredictionSource . PredictionSource può essere impostato su:

  • None
  • History
  • Plugin
  • HistoryAndPlugin

Nota

Le stime basate sulla cronologia provengono dalla cronologia gestita da PSReadLine. Tale cronologia è più completa della cronologia basata sulla sessione che è possibile visualizzare usando Get-History. Per altre informazioni, vedere la sezione Cronologia dei comandi di about_PSReadLine.

Impostazione del colore di stima

Per impostazione predefinita, le stime vengono visualizzate in testo grigio chiaro sulla stessa riga digitata dall'utente. Per supportare le esigenze di accessibilità, è possibile personalizzare il colore di stima. I colori vengono definiti usando sequenze di escape ANSI. È possibile usare $PSStyle per comporre sequenze di escape ANSI.

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

In alternativa, è possibile crearne uno personalizzato. Il colore predefinito del testo di previsione chiaro-grigio può essere ripristinato usando la sequenza di escape ANSI seguente.

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

Per altre informazioni sull'impostazione del colore di stima e altre impostazioni di PSReadLine, vedere Set-PSReadLineOption.

Modifica dei tasti di scelta rapida

PSReadLine contiene funzioni per spostarsi e accettare stime. Ad esempio:

  • AcceptSuggestion - Accettare il suggerimento inline corrente
  • AcceptNextSuggestionWord - Accettare la parola successiva del suggerimento inline
  • AcceptSuggestion viene compilato all'interno ForwardChardi , che è associato a RightArrow per impostazione predefinita
  • AcceptNextSuggestionWordviene compilato all'interno della funzione ForwardWord, che può essere associato a CTRL+F

È possibile usare il Set-PSReadLineKeyHandler cmdlet per modificare le associazioni di tasti.

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

Con questo binding, premendo CTRL+F si accetta la parola successiva di un suggerimento inline quando il cursore si trova alla fine della riga di modifica corrente. È possibile associare altre chiavi a AcceptSuggestion e AcceptNextSuggestionWord per funzionalità simili. Ad esempio, è possibile fare in modo che RightArrow accetti la parola successiva del suggerimento inline, anziché l'intera riga di suggerimento.

Set-PSReadLineKeyHandler -Chord "RightArrow" -Function ForwardWord

Uso di altri plug-in predictor

Il modulo Az.Tools.Predictor è stato il primo plug-in per Predictive IntelliSense. Usa Machine Learning per stimare il comando di Azure PowerShell che si vuole eseguire e i parametri da usare. Per altre informazioni e istruzioni di installazione, vedere Annuncio della disponibilità generale di Az.Tools.Predictor.

Il modulo CompletionPredictor aggiunge un'esperienza IntelliSense per qualsiasi elemento che può essere completato tramite tabulazione in PowerShell. Con PSReadLine impostato su InlineView, si ottiene la normale esperienza di completamento tramite tabulazione. Quando si passa a ListView, si ottiene l'esperienza IntelliSense. È possibile installare il modulo CompletionPredictor da PowerShell Gallery.

PowerShell IntelliSense con CompletionPredictor

Come indicato in precedenza, ListView mostra l'origine della stima. Se sono stati installati più plug-in, le stime vengono raggruppate in base all'origine con Cronologia elencata per prima seguito da ogni plug-in nell'ordine in cui sono state caricate.

Creazione di un modulo predictor personalizzato

È possibile scrivere un predictor personalizzato usando C# per creare un modulo di PowerShell compilato. Il modulo deve implementare l'interfaccia System.Management.Automation.Subsystem.Prediction.ICommandPredictor . Questa interfaccia dichiara i metodi usati per eseguire query sui risultati della stima e fornire feedback.

Per altre informazioni, vedere Come creare un predictor della riga di comando.