Predictors gebruiken in PSReadLine
PSReadLine 2.1.0 heeft de functie Predictive IntelliSense geïntroduceerd. Voorspellende IntelliSense biedt suggesties voor volledige opdrachten op basis van items uit uw PSReadLine-geschiedenis . PSReadLine 2.2.2 breidt de kracht van Predictive IntelliSense uit door ondersteuning toe te voegen voor invoegtoepassingsmodules die gebruikmaken van geavanceerde logica om suggesties voor volledige opdrachten te bieden. Met de nieuwste versie, PSReadLine 2.2.6, worden voorspellingen standaard ingeschakeld.
Voorspellende IntelliSense gebruiken
Wanneer Predictive IntelliSense is ingeschakeld, wordt de voorspellingssuggestie weergegeven als gekleurde tekst na de cursor van de gebruiker. Met de suggesties van Predictive IntelliSense kunnen nieuwe en ervaren gebruikers van PowerShell volledige opdrachten ontdekken, bewerken en uitvoeren op basis van overeenkomende voorspellingen. Suggesties kunnen afkomstig zijn van de geschiedenis van de gebruiker en aanvullende domeinspecifieke invoegtoepassingen.
In de vorige afbeeldingen ziet u de standaardinstelling InlineView
van de suggestie. Als u op RightArrow drukt, wordt een inlinesuggesties geaccepteerd. Nadat u de suggestie hebt geaccepteerd, kunt u de opdrachtregel bewerken voordat u op Enter drukt om de opdracht uit te voeren.
PSReadLine biedt ook een ListView
presentatie van de suggesties.
Wanneer u zich in de lijstweergave bevindt, kunt u de pijltoetsen gebruiken om door de beschikbare suggesties te bladeren. In de lijstweergave wordt ook de bron van de voorspelling weergegeven.
PSReadLine is standaard ingesteld op InlineView
. U kunt schakelen tussen InlineView
en ListView
door op de F2-toets te drukken. U kunt ook de parameter Set-PSReadLineOption
PredictionViewStyle gebruiken om de weergave te wijzigen.
Voorspellende IntelliSense beheren
Als u Predictive IntelliSense wilt gebruiken, moet er een nieuwere versie van PSReadLine zijn geïnstalleerd. Installeer voor de beste resultaten de nieuwste versie van de module.
PSReadLine installeren met behulp van PowerShellGet:
Install-Module -Name PSReadLine
U kunt ook installeren met behulp van de nieuwe PowerShellGet v3-module :
Install-PSResource -Name PSReadLine
PSReadLine kan worden geïnstalleerd in Windows PowerShell 5.1 of in PowerShell 7 of hoger. Als u voorspellingsinvoegtoepassingen wilt gebruiken, moet u worden uitgevoerd in PowerShell 7.2 of hoger. Windows PowerShell 5.1 kan gebruikmaken van de voorspellingsfunctie op basis van geschiedenis.
In PSReadLine 2.2.6 is Predictive IntelliSense standaard ingeschakeld, afhankelijk van de volgende voorwaarden:
- Als Virtual Terminal (VT) wordt ondersteund en PSReadLine wordt uitgevoerd in PowerShell 7.2 of hoger, is PredictionSource ingesteld op
HistoryAndPlugin
- Als VT wordt ondersteund en PSReadLine wordt uitgevoerd in PowerShell ouder dan 7.2, is PredictionSource ingesteld op
History
- Als VT niet wordt ondersteund, is PredictionSource ingesteld op
None
.
Gebruik de volgende opdracht om de huidige instelling weer te geven:
Get-PSReadLineOption | Select-Object -Property PredictionSource
U kunt de voorspellingsbron wijzigen met behulp van de Set-PSReadLineOption
cmdlet met de parameter PredictionSource . De PredictionSource kan worden ingesteld op:
None
History
Plugin
HistoryAndPlugin
Notitie
Voorspellingen op basis van geschiedenis zijn afkomstig uit de geschiedenis die wordt onderhouden door PSReadLine. Deze geschiedenis is uitgebreider dan de sessiegeschiedenis die u kunt zien met behulp van Get-History
. Zie de sectie Opdrachtgeschiedenis van about_PSReadLine voor meer informatie.
De voorspellingskleur instellen
Voorspellingen worden standaard weergegeven in lichtgrijze tekst op dezelfde regel die de gebruiker typt. Ter ondersteuning van toegankelijkheidsbehoeften kunt u de voorspellingskleur aanpassen. Kleuren worden gedefinieerd met behulp van ANSI-escapereeksen. U kunt $PSStyle
ANSI-escapereeksen opstellen.
Set-PSReadLineOption -Colors @{ InlinePrediction = $PSStyle.Background.Blue }
U kunt ook uw eigen maken. De standaard lichtgrijze tekstkleur kan worden hersteld met behulp van de volgende ANSI-escapereeks.
Set-PSReadLineOption -Colors @{ InlinePrediction = "`e[38;5;238m" }
Keybindingen wijzigen
PSReadLine bevat functies om te navigeren en voorspellingen te accepteren. Voorbeeld:
AcceptSuggestion
- Accepteer de huidige inlinesuggestiesAcceptNextSuggestionWord
- Accepteer het volgende woord van de inlinesuggestiesAcceptSuggestion
is gebouwd binnenForwardChar
, wat standaard is gebonden aan RightArrowAcceptNextSuggestionWord
is gebouwd binnen de functieForwardWord
, die kan worden gebonden aan Ctrl+f
U kunt de Set-PSReadLineKeyHandler
cmdlet gebruiken om sleutelbindingen te wijzigen.
Set-PSReadLineKeyHandler -Chord "Ctrl+f" -Function ForwardWord
Met deze binding accepteert u het + volgende woord van een inlinesuggestie wanneer de cursor zich aan het einde van de huidige bewerkingsregel bevindt. U kunt andere sleutels binden aan AcceptSuggestion
en AcceptNextSuggestionWord
voor vergelijkbare functies. U kunt bijvoorbeeld RightArrow het volgende woord van de inlinesuggestie laten accepteren in plaats van de hele suggestieregel.
Set-PSReadLineKeyHandler -Chord "RightArrow" -Function ForwardWord
Andere predictor-invoegtoepassingen gebruiken
De Module Az.Tools.Predictor was de eerste invoegtoepassing voor Predictive IntelliSense. Machine Learning wordt gebruikt om te voorspellen welke Azure PowerShell-opdracht u wilt uitvoeren en welke parameters u wilt gebruiken. Zie Announcing General Availability of Az.Tools.Predictor (Algemene beschikbaarheid van Az.Tools.Predictor) voor meer informatie en installatie-instructies.
Met de module CompletionPredictor wordt een IntelliSense-ervaring toegevoegd voor alles wat door tabs kan worden voltooid in PowerShell. Als PSReadLine is ingesteld op InlineView
, krijgt u de normale ervaring voor het voltooien van tabbladen. Wanneer u overschakelt naar ListView
, krijgt u de IntelliSense-ervaring. U kunt de module CompletionPredictor installeren vanuit de PowerShell Gallery.
Zoals eerder vermeld, ListView
ziet u de bron van de voorspelling. Als u meerdere invoegtoepassingen hebt geïnstalleerd, worden de voorspellingen gegroepeerd op bron met Geschiedenis als eerste, gevolgd door elke invoegtoepassing in de volgorde waarin ze zijn geladen.
Uw eigen predictormodule maken
U kunt uw eigen predictor schrijven met C# om een gecompileerde PowerShell-module te maken. De module moet de interface System.Management.Automation.Subsystem.Prediction.ICommandPredictor implementeren. Deze interface declareert de methoden die worden gebruikt om query's uit te voeren op voorspellingsresultaten en feedback te geven.
Zie How to create a command-line predictor (Een opdrachtregel voorspellende functie maken) voor meer informatie.