Condividi tramite


Uso di predictor in PSReadLine

PSReadLine 2.1.0 ha introdotto la funzionalità DitelliSense predittiva . IntelliSense predittivo fornisce suggerimenti per comandi completi basati sugli elementi della cronologia di 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.

L'uso dell'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 altri plug-in specifici del dominio.

Visualizzazione inline di una stima

L'immagine precedente mostra il valore predefinito InlineView del suggerimento. Premendo il tasto freccia destra accetta un suggerimento in linea. 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 previsione.

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

Gestione di IntelliSense predittivo

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

Installare PSReadLine usando il modulo Microsoft.PowerShell.PSResourceGet :

Install-PSResource -Name PSReadLine

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

In PSReadLine 2.2.6, IntelliSense Predittivo è abilitato di default 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

Annotazioni

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 previsione

Per impostazione predefinita, le stime vengono visualizzate in testo grigio chiaro sulla stessa riga digitata dall'utente. Per supportare i bisogni di accessibilità, è possibile personalizzare il colore della previsione. 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 collegamenti dei tasti

PSReadLine contiene funzioni per spostarsi e accettare previsioni. Per esempio:

  • AcceptSuggestion - Accettare il suggerimento in linea corrente
  • AcceptNextSuggestionWord - Accettare la parola successiva del suggerimento in linea
  • AcceptSuggestion è costruito all'interno di ForwardChar, che è associato a RightArrow per impostazione predefinita
  • AcceptNextSuggestionWord viene 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

Utilizzo di altri plug-in di previsione

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 con il tasto tabulatore 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 installati più plug-in, le stime vengono raggruppate in base all'origine con Cronologia elencata prima seguita da ogni plug-in nell'ordine in cui sono stati caricati.

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 predittore della riga di comando.