Verwenden von Vorhersagediensten in PSReadLine
In PSReadLine 2.1.0 haben wir die Predictive IntelliSense-Funktion eingeführt. Predictive IntelliSense liefert Vorschläge zur Vervollständigung von Befehlen basierend auf Elementen aus Ihrem PSReadLine-Verlauf. In PSReadLine 2.2.2 wird Predictive IntelliSense noch leistungsfähiger. Nun werden zur Erstellung der Befehlsvorschläge Plug-In-Module unterstützt, die erweiterte Logik verwenden. In der neuesten Version, PSReadLine 2.2.6, sind Vorhersagen standardmäßig aktiviert.
Predictive IntelliSense verwenden
Wenn Predictive IntelliSense aktiviert ist, wird der Vorhersagevorschlag ab der Cursorposition als farbiger Text eingeblendet. Die Vorschläge von Predictive IntelliSense helfen neuen und erfahrenen PowerShell-Nutzern, vollständige Befehle basierend auf übereinstimmenden Vorhersagen zu finden, zu bearbeiten und auszuführen. Die Vorschläge werden aus dem Benutzerverlauf und zusätzlichen, domänenspezifischen Plugins gewonnen.
Die obigen Bilder zeigen die Standard-Inlineansicht (InlineView
) eines Vorschlags. Inlinevorschläge akzeptieren Sie, indem Sie die NACH-RECHTS-TASTE drücken. 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 ebenfalls die Möglichkeit, die Vorschläge im ListView
anzuzeigen.
In der Listenansicht können Sie mit den Pfeiltasten durch die verfügbaren Vorschläge scrollen. Die Listenansicht zeigt außerdem die Quelle der Vorhersage an.
PSReadLine nutzt standardmäßig InlineView
. Sie können zwischen InlineView
und ListView
wechseln, indem Sie die Taste F2 drücken. Sie können auch den PredictionViewStyle-Parameter Set-PSReadLineOption
verwenden, um die Ansicht zu ändern.
Predictive IntelliSense nutzen
Um Predictive IntelliSense zu verwenden, müssen Sie eine neuere Version von PSReadLine installiert haben. Die besten Ergebnisse erhalten Sie mit der aktuellsten Version des Moduls.
So installieren Sie PSReadLine mithilfe von PowerShellGet:
Install-Module -Name PSReadLine
Alternativ dazu können Sie das neue PowerShellGet v3-Modul installieren:
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 verwenden. In Windows PowerShell 5.1 ist die verlaufsbasierte Vorhersage verfügbar.
In PSReadLine 2.2.6 ist Predictive IntelliSense standardmäßig unter den folgenden Bedingungen aktiviert:
- Wenn virtual Terminal (VT) unterstützt wird und PSReadLine in PowerShell 7.2 oder höher ausgeführt wird, wird PredictionSource auf
HistoryAndPlugin
gestellt. - Wenn virtual Terminal (VT) unterstützt wird und PSReadLine in PowerShell 7.2 oder höher ausgeführt wird, wird PredictionSource auf
History
gestellt. - Wenn VT nicht unterstützt wird, wird PredictionSource auf
None
gestellt.
Verwenden Sie den folgenden Befehl, um die aktuelle Einstellung zu sehen:
Get-PSReadLineOption | Select-Object -Property PredictionSource
Sie können die Vorhersagequelle mithilfe des Cmdlets Set-PSReadLineOption
und dem Parameter PredictionSource ändern. Um die Vorhersagequelle festzulegen, haben Sie folgende Optionen:
None
History
Plugin
HistoryAndPlugin
Hinweis
Verlaufsbasierte Vorhersagen („History“) stammen aus dem von PSReadLine verwalteten Benutzerverlauf. Dieser Verlauf ist umfassender als der sitzungsbasierte Verlauf, den Sie über Get-History
anzeigen können. Weitere Informationen finden Sie im Abschnitt „Befehlsverlauf“ unter about_PSReadLine.
Festlegen der Vorhersagefarbe
Standardmäßig werden Vorhersagen als hellgrauer Text in derselben Zeile angezeigt, die der Benutzer gerade bearbeitet. Um die Barrierefreiheit zu fördern, können Sie die Vorhersagefarbe anpassen. Die Farben werden mithilfe von ANSI-Escapesequenzen definiert. Zum Verfassen von ANSI-Escapesequenzen können Sie $PSStyle
verwenden.
Set-PSReadLineOption -Colors @{ InlinePrediction = $PSStyle.Background.Blue }
Sie können selbstverständlich auch Ihre eigenen Escapesequenzen erstellen. Der standardmäßig hellgraue Vorhersagetext 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.
Tastenzuordnung ändern
PSReadLine enthält Funktionen zum Navigieren und Akzeptieren von Vorhersagen. Zum Beispiel:
AcceptSuggestion
– akzeptiert den aktuellen InlinevorschlagAcceptNextSuggestionWord
– akzeptiert das nächste Wort im InlinevorschlagAcceptSuggestion
wird inForwardChar
erstellt und ist standardmäßig mit der NACH-RECHTS-TASTE verknüpft.AcceptNextSuggestionWord
ist mit der FunktionForwardWord
integriert, die an STRG+F gebunden sein kann.
Mit dem Cmdlet Set-PSReadLineKeyHandler
können Sie die Tastenzuordnung ändern.
Set-PSReadLineKeyHandler -Chord "Ctrl+f" -Function ForwardWord
Wenn Sie bei dieser Zuordnung STRG+F drücken, wird das nächste Wort in einem Inlinevorschlag akzeptiert, wenn der Cursor am Ende der aktuellen Bearbeitungszeile steht. Auch AcceptSuggestion
und AcceptNextSuggestionWord
können Sie für eine ähnliche Funktionsweise an bestimmte Tastenanschläge binden, falls Sie beispielsweise über die NACH-RECHTS-TASTE nur das nächste Wort des Inlinevorschlags anstelle der gesamten Vorschlagszeile akzeptieren möchten.
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 wollen, und welche Parameter Sie verwenden möchten. Weitere Informationen und Installationsanweisungen finden Sie unter Ankündigung der allgemeinen Verfügbarkeit von Az.Tools.Predictor.
Das CompletionPredictor-Modul macht alles, was in PowerShell mit der TAB-TASTE vervollständigt werden kann, IntelliSense-fähig. Wenn PSReadLine auf InlineView
eingestellt ist, können Sie wie gewohnt die TAB-TASTE zur Vervollständigung nutzen. Wenn Sie zu ListView
wechseln, erhalten Sie die IntelliSense-Funktionsweise. Das CompletionPredictor-Modul können Sie aus dem PowerShell-Katalog installieren.
Wie bereits erwähnt, zeigt Ihnen ListView
, woher die Vorhersage stammt. Wenn mehrere Plug-Ins installiert sind, werden die Vorhersagen nach Quellen gruppiert. Die verlaufsbasierte Vorhersage ist zuerst aufgeführt, gefolgt von allen Plug-Ins in der Reihenfolge, in der sie geladen wurden.
Erstellen eines eigenen Prädiktormoduls
Sie können Ihre eigene Vorhersagefunktion mithilfe von C# schreiben, um ein kompiliertes PowerShell-Modul zu erstellen. Das Modul muss die Schnittstelle System.Management.Automation.Subsystem.Prediction.ICommandPredictor implementieren. Diese Schnittstelle deklariert die Methoden, die verwendet werden, um Vorhersageergebnisse abzufragen und Feedback zu geben.
Weitere Informationen finden Sie unter Erstellen einer Befehlszeilenvorhersage.