Delen via


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.

Inlineweergave van een voorspelling

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.

Lijstweergave van voorspellingen

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" }

Zie Set-PSReadLineOption voor meer informatie over het instellen van de voorspellingskleur en andere PSReadLineOption-instellingen.

Keybindingen wijzigen

PSReadLine bevat functies om te navigeren en voorspellingen te accepteren. Voorbeeld:

  • AcceptSuggestion - Accepteer de huidige inlinesuggesties
  • AcceptNextSuggestionWord - Accepteer het volgende woord van de inlinesuggesties
  • AcceptSuggestionis gebouwd binnenForwardChar, wat standaard is gebonden aan RightArrow
  • AcceptNextSuggestionWord is gebouwd binnen de functie ForwardWord, 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.

PowerShell IntelliSense met behulp van de CompletionPredictor

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.