Freigeben über


Verwenden von Prädiktoren in PSReadLine

PSReadLine 2.1.0 hat das Predictive IntelliSense-Feature eingeführt. Predictive IntelliSense bietet Vorschläge für vollständige Befehle basierend auf Elementen aus Ihrem PSReadLine-Verlauf . PSReadLine 2.2.2 erweitert die Leistungsfähigkeit von Predictive IntelliSense durch Hinzufügen von Unterstützung für Plug-In-Module, die erweiterte Logik verwenden, um Vorschläge für vollständige Befehle bereitzustellen. Die neueste Version, PSReadLine 2.2.6, aktiviert standardmäßig Vorhersagen.

Verwenden von Predictive IntelliSense

Wenn Predictive IntelliSense aktiviert ist, wird der Vorhersagevorschlag nach dem Cursor des Benutzers als farbiger Text angezeigt. Die Vorschläge von Predictive IntelliSense helfen neuen und erfahrenen Benutzern von PowerShell, basierend auf übereinstimmenden Vorhersagen, vollständige Befehle zu entdecken, zu bearbeiten und auszuführen. Vorschläge können aus dem Verlauf des Benutzers und zusätzlichen domänenspezifischen Plug-Ins stammen.

Inlineansicht einer Vorhersage

Die vorherigen Bilder zeigen den Standardwert InlineView des Vorschlags. Durch Drücken der NACH-RECHTS-TASTE wird ein Inlinevorschlag akzeptiert. Nachdem Sie den Vorschlag angenommen haben, können Sie die Befehlszeile bearbeiten, bevor Sie die EINGABETASTE drücken, um den Befehl auszuführen.

PSReadLine bietet auch eine ListView Präsentation der Vorschläge.

Listenansicht von Vorhersagen

In der Listenansicht können Sie mithilfe der Pfeiltasten durch die verfügbaren Vorschläge scrollen. Die Listenansicht zeigt auch die Quelle der Vorhersage an.

PSReadLine ist standardmäßig auf InlineView. Sie können zwischen InlineView und ListView durch Drücken der F2-TASTE wechseln. Sie können auch den PredictionViewStyle-ParameterSet-PSReadLineOption verwenden, um die Ansicht zu ändern.

Verwalten von Predictive IntelliSense

Um Predictive IntelliSense zu verwenden, müssen Sie eine neuere Version von PSReadLine installiert haben. Um optimale Ergebnisse zu erzielen, installieren Sie die neueste Version des Moduls.

So installieren Sie PSReadLine mit PowerShellGet:

Install-Module -Name PSReadLine

Oder installieren Sie das neue PowerShellGet v3-Modul :

Install-PSResource -Name PSReadLine

PSReadLine kann in Windows PowerShell 5.1 oder in PowerShell 7 oder höher installiert werden. Um Vorhersage-Plug-Ins zu verwenden, müssen Sie PowerShell 7.2 oder höher nutzen. Windows PowerShell 5.1 kann den verlaufsbasierten Prädiktor verwenden.

In PSReadLine 2.2.6 ist Predictive IntelliSense standardmäßig abhängig von den folgenden Bedingungen aktiviert:

  • Wenn Virtual Terminal (VT) unterstützt und PSReadLine in PowerShell 7.2 oder höher ausgeführt wird, wird PredictionSource auf HistoryAndPlugin eingestellt.
  • Wenn VT unterstützt wird und PSReadLine in PowerShell ausgeführt wird, die älter als 7.2 ist, wird PredictionSource auf History eingestellt.
  • Wenn VT nicht unterstützt wird, wird PredictionSource auf None gesetzt.

Verwenden Sie den folgenden Befehl, um die aktuelle Einstellung anzuzeigen:

Get-PSReadLineOption | Select-Object -Property PredictionSource

Sie können die Vorhersagequelle mithilfe des Set-PSReadLineOption Cmdlets mit dem Parameter "PredictionSource " ändern. Die PredictionSource kann auf Folgendes festgelegt werden:

  • None
  • History
  • Plugin
  • HistoryAndPlugin

Hinweis

Verlaufsbasierte Prognosen werden aus dem von PSReadLine gespeicherten Verlauf erstellt. Dieser Verlauf ist umfassender als der sitzungsbasierte Verlauf, den Sie mit Get-History sehen können. Weitere Informationen finden Sie im Abschnitt "Befehlsverlauf " von about_PSReadLine.

Festlegen der Vorhersagefarbe

Standardmäßig werden Vorhersagen in hellgrauem Text in derselben Zeile angezeigt, die der Benutzer eingibt. Um Barrierefreiheitsanforderungen zu unterstützen, können Sie die Vorhersagefarbe anpassen. Farben werden mithilfe von ANSI-Escapesequenzen definiert. Sie können $PSStyle verwenden, um ANSI-Escapesequenzen zu verfassen.

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

Sie können auch Ihre eigenen erstellen. Die standardmäßige Hellgrau-Vorhersagetextfarbe kann mithilfe der folgenden ANSI-Escapesequenz wiederhergestellt werden.

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

Weitere Informationen zum Festlegen der Vorhersagefarbe und anderer PSReadLine-Einstellungen finden Sie unter Set-PSReadLineOption.

Ändern von Tastenkombinationen

PSReadLine enthält Funktionen zum Navigieren und Akzeptieren von Vorhersagen. Beispiel:

  • AcceptSuggestion - Akzeptieren Sie den aktuellen Inlinevorschlag
  • AcceptNextSuggestionWord - Akzeptiere das nächste Wort des Inlinevorschlags
  • AcceptSuggestion ist in ForwardChar integriert und ist standardmäßig an RightArrow gebunden.
  • AcceptNextSuggestionWordwird in der Funktion ForwardWorderstellt, die an STRG+F gebunden werden kann

Sie können das Set-PSReadLineKeyHandler Cmdlet verwenden, um Schlüsselbindungen zu ändern.

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

Mit dieser Bindung akzeptiert das Drücken von Strg f das nächste Wort im Inlinevorschlag, wenn sich der Cursor am Ende der aktuellen Bearbeitungszeile befindet. Sie können andere Schlüssel an AcceptSuggestion und AcceptNextSuggestionWord für ähnliche Funktionen binden. So können Sie beispielsweise festlegen, dass RightArrow das nächste Wort des Inlinevorschlags anstelle der gesamten Vorschlagszeile akzeptiert.

Set-PSReadLineKeyHandler -Chord "RightArrow" -Function ForwardWord

Verwenden anderer Vorhersage-Plug-Ins

Das Az.Tools.Predictor-Modul war das erste Plug-In für Predictive IntelliSense. Es verwendet Machine Learning, um vorherzusagen, welchen Azure PowerShell-Befehl Sie ausführen möchten, und die Parameter, die Sie verwenden möchten. Weitere Informationen und Installationsanweisungen finden Sie unter Ankündigung der allgemeinen Verfügbarkeit von Az.Tools.Predictor.

Das Modul CompletionPredictor fügt eine IntelliSense-Erfahrung für alle Elemente hinzu, die in PowerShell mit der Tabulatortaste abgeschlossen werden können. Wenn PSReadLine auf InlineView festgelegt ist, erhalten Sie die normale Benutzeroberfläche zum Abschließen der Registerkarte. Wenn Sie zu ListView wechseln, haben Sie das IntelliSense-Erlebnis. Sie können das CompletionPredictor-Modul aus dem PowerShell-Katalog installieren.

PowerShell IntelliSense mit dem CompletionPredictor

Wie bereits erwähnt, ListView zeigt Ihnen die Quelle der Vorhersage. Wenn Sie mehrere Plug-Ins installiert haben, werden die Vorhersagen nach Quelle gruppiert, wobei der Verlauf zuerst aufgeführt ist, gefolgt von jedem Plug-In in der Reihenfolge, in der sie geladen wurden.

Erstellen Eines eigenen Vorhersagemoduls

Sie können ihren eigenen Vorhersager mit C# schreiben, um ein kompiliertes PowerShell-Modul zu erstellen. Das Modul muss die System.Management.Automation.Subsystem.Prediction.ICommandPredictor-Schnittstelle implementieren. Diese Schnittstelle deklariert die Methoden, die zum Abfragen von Vorhersageergebnissen und zum Bereitstellen von Feedback verwendet werden.

Weitere Informationen finden Sie unter Erstellen eines Befehlszeilenvorhersagers.