Set-PSReadLineOption

Hiermee past u het gedrag van het bewerken van opdrachtregels in PSReadLine aan.

Syntax

Set-PSReadLineOption
   [-EditMode <EditMode>]
   [-ContinuationPrompt <String>]
   [-HistoryNoDuplicates]
   [-AddToHistoryHandler <System.Func`2[System.String,System.Object]>]
   [-CommandValidationHandler <System.Action`1[System.Management.Automation.Language.CommandAst]>]
   [-HistorySearchCursorMovesToEnd]
   [-MaximumHistoryCount <Int32>]
   [-MaximumKillRingCount <Int32>]
   [-ShowToolTips]
   [-ExtraPromptLineCount <Int32>]
   [-DingTone <Int32>]
   [-DingDuration <Int32>]
   [-BellStyle <BellStyle>]
   [-CompletionQueryItems <Int32>]
   [-WordDelimiters <String>]
   [-HistorySearchCaseSensitive]
   [-HistorySaveStyle <HistorySaveStyle>]
   [-HistorySavePath <String>]
   [-AnsiEscapeTimeout <Int32>]
   [-PromptText <String[]>]
   [-ViModeIndicator <ViModeStyle>]
   [-ViModeChangeHandler <ScriptBlock>]
   [-PredictionSource <PredictionSource>]
   [-PredictionViewStyle <PredictionViewStyle>]
   [-Colors <Hashtable>]
   [<CommonParameters>]

Description

De Set-PSReadLineOption cmdlet past het gedrag van de PSReadLine-module aan wanneer u de opdrachtregel bewerkt. Als u de PSReadLine-instellingen wilt weergeven, gebruikt u Get-PSReadLineOption.

Voorbeelden

Voorbeeld 1: Voorgrond- en achtergrondkleuren instellen

In dit voorbeeld wordt PSReadLine ingesteld om het token Opmerking weer te geven met groene voorgrondtekst op een grijze achtergrond. In de escapereeks die in het voorbeeld wordt gebruikt, vertegenwoordigt 32 de voorgrondkleur en 47 de achtergrondkleur.

Set-PSReadLineOption -Colors @{ "Comment"="`e[32;47m" }

U kunt ervoor kiezen om alleen een voorgrondtekstkleur in te stellen. Bijvoorbeeld een heldergroene voorgrondtekstkleur voor het opmerkingstoken : "Comment"="`e[92m".

Voorbeeld 2: Belstijl instellen

In dit voorbeeld reageert PSReadLine op fouten of voorwaarden waarvoor gebruikers aandacht is vereist. De BellStyle is ingesteld om een hoorbare pieptoon te verzenden op 1221 Hz voor 60 ms.

Set-PSReadLineOption -BellStyle Audible -DingTone 1221 -DingDuration 60

Notitie

Deze functie werkt mogelijk niet op alle hosts op platforms.

Voorbeeld 3: Meerdere opties instellen

Set-PSReadLineOption kan meerdere opties instellen met een hash-tabel.

$PSReadLineOptions = @{
    EditMode = "Emacs"
    HistoryNoDuplicates = $true
    HistorySearchCursorMovesToEnd = $true
    Colors = @{
        "Command" = "#8181f7"
    }
}
Set-PSReadLineOption @PSReadLineOptions

De $PSReadLineOptions hashtabel stelt de sleutels en waarden in. Set-PSReadLineOption gebruikt de sleutels en waarden om @PSReadLineOptions de PSReadLine-opties bij te werken.

U kunt de sleutels en waarden weergeven die de hashtabelnaam invoeren op $PSReadLineOptions de PowerShell-opdrachtregel.

Voorbeeld 4: Meerdere kleuropties instellen

In dit voorbeeld ziet u hoe u meer dan één kleurwaarde instelt in één opdracht.

Set-PSReadLineOption -Colors @{
  Command            = 'Magenta'
  Number             = 'DarkGray'
  Member             = 'DarkGray'
  Operator           = 'DarkGray'
  Type               = 'DarkGray'
  Variable           = 'DarkGreen'
  Parameter          = 'DarkGreen'
  ContinuationPrompt = 'DarkGray'
  Default            = 'DarkGray'
}

Voorbeeld 5: Kleurwaarden instellen voor meerdere typen

In dit voorbeeld ziet u drie verschillende methoden voor het instellen van de kleur van tokens die worden weergegeven in PSReadLine.

Set-PSReadLineOption -Colors @{
 # Use a ConsoleColor enum
 "Error" = [ConsoleColor]::DarkRed

 # 24 bit color escape sequence
 "String" = "$([char]0x1b)[38;5;100m"

 # RGB value
 "Command" = "#8181f7"
}

Voorbeeld 6: ViModeChangeHandler gebruiken om wijzigingen in de Vi-modus weer te geven

In dit voorbeeld wordt een VT-escape voor cursorwijziging verzonden als reactie op een wijziging in de Vi-modus .

function OnViModeChange {
    if ($args[0] -eq 'Command') {
        # Set the cursor to a blinking block.
        Write-Host -NoNewLine "`e[1 q"
    } else {
        # Set the cursor to a blinking line.
        Write-Host -NoNewLine "`e[5 q"
    }
}
Set-PSReadLineOption -ViModeIndicator Script -ViModeChangeHandler $Function:OnViModeChange

Met de functie OnViModeChange worden de cursoropties voor de vi-modi ingesteld: invoegen en opdracht. ViModeChangeHandler gebruikt de Function: provider om te verwijzen naar OnViModeChange als een scriptblokobject.

Zie about_Providers voor meer informatie.

Parameters

-AddToHistoryHandler

Hiermee geeft u een ScriptBlock op waarmee wordt bepaald welke opdrachten worden toegevoegd aan de GESCHIEDENIS van PSReadLine .

ScriptBlock ontvangt de opdrachtregel als invoer. Als scriptblock wordt geretourneerd $True, wordt de opdrachtregel toegevoegd aan de geschiedenis.

Type:Func<T,TResult>[System.String,System.Object]
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-AnsiEscapeTimeout

Deze optie is specifiek voor Windows wanneer invoer wordt omgeleid, bijvoorbeeld wanneer deze wordt uitgevoerd onder tmux of screen.

Met omgeleide invoer in Windows worden veel sleutels verzonden als een reeks tekens die beginnen met het escape-teken. Het is onmogelijk om onderscheid te maken tussen één escape-teken gevolgd door meer tekens en een geldige escape-reeks.

De aanname is dat de terminal de tekens sneller kan verzenden dan een gebruikerstype. PSReadLine wacht op deze time-out voordat wordt geconcludeerd dat deze een volledige escape-reeks heeft ontvangen.

Als u willekeurige of onverwachte tekens ziet wanneer u typt, kunt u deze time-out aanpassen.

Type:Int32
Position:Named
Default value:100
Accept pipeline input:False
Accept wildcard characters:False
-BellStyle

Hiermee geeft u op hoe PSReadLine reageert op verschillende fout- en dubbelzinnige voorwaarden.

De geldige waarden zijn als volgt:

  • Hoorbaar: een korte pieptoon.
  • Visual: Tekst knippert kort.
  • Geen: geen feedback.
Type:BellStyle
Position:Named
Default value:Audible
Accept pipeline input:False
Accept wildcard characters:False
-Colors

De parameter Kleuren geeft verschillende kleuren op die door PSReadLine worden gebruikt.

Het argument is een hashtabel waarin de sleutels opgeven welk element en welke waarden de kleur opgeven. Zie about_Hash_Tables voor meer informatie.

Kleuren kunnen een waarde zijn uit ConsoleColor, bijvoorbeeld [ConsoleColor]::Redof een geldige ANSI-escapereeks. Geldige escapereeksen zijn afhankelijk van uw terminal. In PowerShell 5.0 is $([char]0x1b)[91meen voorbeeld van een escapereeks voor rode tekst. In PowerShell 6 en hoger is `e[91mdezelfde escape-reeks. U kunt andere escapereeksen opgeven, waaronder de volgende typen:

Er zijn twee kleurinstellingen toegevoegd ter ondersteuning van aanpassing van de ListView in PSReadLine 2.2.0:

  • ListPredictionColor - stel kleur in voor het voorloopteken > en de naam van de volgbron, bijvoorbeeld [History]. Standaard wordt deze gebruikt DarkYellow als voorgrondkleur.

  • ListPredictionSelectedColor - kleur instellen om aan te geven dat een lijstitem is geselecteerd. Standaard wordt deze gebruikt DarkBlack als achtergrondkleur.

  • 256 kleur

  • 24-bits kleur

  • Voorgrond, achtergrond of beide

  • Inverse, vet

Zie ANSI-escapecode in Wikipedia voor meer informatie over ANSI-kleurcodes.

De geldige sleutels zijn onder andere:

  • ContinuationPrompt: De kleur van de vervolgprompt.
  • Nadruk: De nadrukkleur. Bijvoorbeeld de overeenkomende tekst bij het zoeken in de geschiedenis.
  • Fout: De foutkleur. Bijvoorbeeld in de prompt.
  • Selectie: De kleur om de menuselectie of geselecteerde tekst te markeren.
  • Standaard: de standaardtokenkleur.
  • Opmerking: de kleur van het opmerkingstoken.
  • Trefwoord: de kleur van het trefwoordtoken.
  • Tekenreeks: De kleur van het tekenreekstoken.
  • Operator: De kleur van het operatortoken.
  • Variabele: De kleur van het variabeletoken.
  • Opdracht: De kleur van het opdrachttoken.
  • Parameter: De kleur van het parametertoken.
  • Type: De kleur van het typetoken.
  • Getal: De kleur van het nummertoken.
  • Lid: De naamtokenkleur van het lid.
  • InlinePrediction: de kleur voor de inlineweergave van de voorspellende suggestie.
Type:Hashtable
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-CommandValidationHandler

Hiermee geeft u een ScriptBlock op die wordt aangeroepen vanuit ValidateAndAcceptLine. Als er een uitzondering wordt gegenereerd, mislukt de validatie en wordt de fout gerapporteerd.

Voordat u een uitzondering genereert, kan de validatie-handler de cursor op het punt van de fout plaatsen om deze gemakkelijker op te lossen. Een validatiehandler kan ook de opdrachtregel wijzigen, zoals het corrigeren van veelvoorkomende typografische fouten.

ValidateAndAcceptLine wordt gebruikt om te voorkomen dat uw geschiedenis overzichtelijk blijft met opdrachten die niet werken.

Type:Action<T>[CommandAst]
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-CompletionQueryItems

Hiermee geeft u het maximum aantal voltooiingsitems op dat wordt weergegeven zonder te vragen.

Als het aantal items dat moet worden weergegeven groter is dan deze waarde, vraagt PSReadLineja/nee voordat de voltooiingsitems worden weergegeven.

Type:Int32
Position:Named
Default value:100
Accept pipeline input:False
Accept wildcard characters:False
-ContinuationPrompt

Hiermee geeft u de tekenreeks die wordt weergegeven aan het begin van de volgende regels wanneer invoer met meerdere regels wordt ingevoerd. De standaardwaarde is twee keer groter dan tekens (>>). Een lege tekenreeks is geldig.

Type:String
Position:Named
Default value:>>
Accept pipeline input:False
Accept wildcard characters:False
-DingDuration

Hiermee geeft u de duur van de pieptoon wanneer BellStyle is ingesteld op Audible.

Type:Int32
Position:Named
Default value:50ms
Accept pipeline input:False
Accept wildcard characters:False
-DingTone

Hiermee geeft u de toon in Hertz (Hz) van de piep wanneer BellStyle is ingesteld op Audible.

Type:Int32
Position:Named
Default value:1221
Accept pipeline input:False
Accept wildcard characters:False
-EditMode

Hiermee geeft u de bewerkingsmodus voor de opdrachtregel op. Met deze parameter worden alle sleutelbindingen die zijn ingesteld door Set-PSReadLineKeyHandler.

De geldige waarden zijn als volgt:

  • Windows: Sleutelbindingen emuleren PowerShell, cmd en Visual Studio.
  • Emacs: Sleutelbindingen emuleren Bash of Emacs.
  • Vi: Sleutelbindingen emuleren Vi.

Gebruik Get-PSReadLineKeyHandler deze optie om de sleutelbindingen voor de momenteel geconfigureerde EditMode weer te geven.

Type:EditMode
Position:Named
Default value:Windows
Accept pipeline input:False
Accept wildcard characters:False
-ExtraPromptLineCount

Hiermee geeft u het aantal extra regels op.

Als de prompt meer dan één regel omvat, geeft u een waarde op voor deze parameter. Gebruik deze optie als u extra regels beschikbaar wilt maken wanneer PSReadLine de prompt weergeeft nadat er uitvoer is weergegeven. PSReadLine retourneert bijvoorbeeld een lijst met voltooiingen.

Deze optie is minder nodig dan in eerdere versies van PSReadLine, maar is handig wanneer de InvokePrompt functie wordt gebruikt.

Type:Int32
Position:Named
Default value:0
Accept pipeline input:False
Accept wildcard characters:False
-HistoryNoDuplicates

Met deze optie bepaalt u het intrekkingsgedrag. Dubbele opdrachten worden nog steeds toegevoegd aan het geschiedenisbestand. Wanneer deze optie is ingesteld, wordt alleen de meest recente aanroep weergegeven bij het intrekken van opdrachten. Herhaalde opdrachten worden toegevoegd aan de geschiedenis om de volgorde tijdens het intrekken te behouden. Meestal wilt u de opdracht echter niet meerdere keren zien wanneer u de geschiedenis terugroept of doorzoekt.

De eigenschap HistoryNoDuplicates van het globale PSConsoleReadLineOptions-object is standaard ingesteld op True. Met deze SwitchParameter stelt u de eigenschapswaarde in op True. Als u de eigenschapswaarde wilt wijzigen, moet u de waarde van de SwitchParameter als volgt opgeven: -HistoryNoDuplicates:$False

Met de volgende opdracht kunt u de eigenschapswaarde rechtstreeks instellen:

(Get-PSReadLineOption).HistoryNoDuplicates = $False

Type:SwitchParameter
Position:Named
Default value:False
Accept pipeline input:False
Accept wildcard characters:False
-HistorySavePath

Hiermee geeft u het pad naar het bestand waarin de geschiedenis wordt opgeslagen. Op computers met Windows- of niet-Windows-platforms wordt het bestand op verschillende locaties opgeslagen. De bestandsnaam wordt bijvoorbeeld opgeslagen in een variabele$($host.Name)_history.txtConsoleHost_history.txt.

Als u deze parameter niet gebruikt, is het standaardpad als volgt:

Windows

  • $env:APPDATA\Microsoft\Windows\PowerShell\PSReadLine\$($host.Name)_history.txt

niet-Windows

  • $env:XDG_DATA_HOME/powershell/PSReadLine/$($host.Name)_history.txt
  • $env:HOME/.local/share/powershell/PSReadLine/$($host.Name)_history.txt
Type:String
Position:Named
Default value:A file named $($host.Name)_history.txt in $env:APPDATA\Microsoft\Windows\PowerShell\PSReadLine on Windows and $env:XDG_DATA_HOME/powershell/PSReadLine or $env:HOME/.local/share/powershell/PSReadLine on non-Windows platforms
Accept pipeline input:False
Accept wildcard characters:False
-HistorySaveStyle

Hiermee geeft u op hoe PSReadLine geschiedenis opslaat.

Geldige waarden zijn als volgt:

  • SaveIncrementally: Sla geschiedenis op nadat elke opdracht is uitgevoerd en deel deze over meerdere exemplaren van PowerShell.
  • SaveAtExit: Geschiedenisbestand toevoegen wanneer PowerShell wordt afgesloten.
  • SaveNothing: Gebruik geen geschiedenisbestand.
Type:HistorySaveStyle
Position:Named
Default value:SaveIncrementally
Accept pipeline input:False
Accept wildcard characters:False
-HistorySearchCaseSensitive

Hiermee geeft u op dat zoeken in geschiedenis hoofdlettergevoelig is in functies zoals ReverseSearchHistory of HistorySearchBackward.

De eigenschap HistorySearchCaseSensitive van het globale PSConsoleReadLineOptions-object is standaard ingesteld op False. Met deze SwitchParameter stelt u de eigenschapswaarde in op True. Als u de eigenschapswaarde weer wilt wijzigen, moet u de waarde van de SwitchParameter als volgt opgeven: -HistorySearchCaseSensitive:$False

Met de volgende opdracht kunt u de eigenschapswaarde rechtstreeks instellen:

(Get-PSReadLineOption).HistorySearchCaseSensitive = $False

Type:SwitchParameter
Position:Named
Default value:False
Accept pipeline input:False
Accept wildcard characters:False
-HistorySearchCursorMovesToEnd

Geeft aan dat de cursor wordt verplaatst naar het einde van opdrachten die u vanuit de geschiedenis laadt met behulp van een zoekopdracht. Wanneer deze parameter is ingesteld $Falseop, blijft de cursor op de positie waar deze zich bevond toen u op de pijl-omhoog of pijl-omlaag hebt gedrukt.

De eigenschap HistorySearchCursorMovesToEnd van het globale PSConsoleReadLineOptions-object is standaard ingesteld op False. Met deze SwitchParameter stelt u de eigenschapswaarde in op True. Als u de eigenschapswaarde weer wilt wijzigen, moet u de waarde van de SwitchParameter als volgt opgeven: -HistorySearchCursorMovesToEnd:$False

Met de volgende opdracht kunt u de eigenschapswaarde rechtstreeks instellen:

(Get-PSReadLineOption).HistorySearchCursorMovesToEnd = $False

Type:SwitchParameter
Position:Named
Default value:False
Accept pipeline input:False
Accept wildcard characters:False
-MaximumHistoryCount

Hiermee geeft u het maximum aantal opdrachten op dat moet worden opgeslagen in de geschiedenis van PSReadLine .

PSReadLine-geschiedenis is gescheiden van PowerShell-geschiedenis.

Type:Int32
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-MaximumKillRingCount

Hiermee geeft u het maximum aantal items op dat is opgeslagen in de kill-ring.

Type:Int32
Position:Named
Default value:10
Accept pipeline input:False
Accept wildcard characters:False
-PredictionSource

Hiermee geeft u de bron voor PSReadLine op om voorspellende suggesties te krijgen.

Geldige waarden zijn:

  • Geen : de voorspellende IntelliSense-functie uitschakelen (standaard).
  • Geschiedenis : schakel de voorspellende IntelliSense-functie in en gebruik de PSReadLine-geschiedenis als de enige bron.
  • Invoegtoepassing : schakel de voorspellende IntelliSense-functie in en gebruik de invoegtoepassingen (CommandPrediction) als enige bron. Deze waarde is toegevoegd in PSReadLine 2.2.0
  • HistoryAndPlugin : schakel de voorspellende IntelliSense-functie in en gebruik zowel geschiedenis als invoegtoepassing als de bronnen. Deze waarde is toegevoegd in PSReadLine 2.2.0
Type:Microsoft.PowerShell.PredictionSource
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-PredictionViewStyle

Hiermee stelt u de stijl voor de weergave van de voorspellende tekst in. De standaardwaarde is InlineView.

  • InlineView - de stijl als bestaande vandaag, vergelijkbaar met in visschaal en zsh. (standaard)
  • ListView - suggesties worden weergegeven in een vervolgkeuzelijst en gebruikers kunnen selecteren met UpArrow en DownArrow.

Deze parameter is toegevoegd in PSReadLine 2.2.0

Type:Microsoft.PowerShell.PredictionViewStyle
Position:Named
Default value:InlineView
Accept pipeline input:False
Accept wildcard characters:False
-PromptText

Wanneer er een parseringsfout optreedt, verandert PSReadLine een deel van de prompt rood. PSReadLine analyseert uw promptfunctie om te bepalen hoe u alleen de kleur van een deel van uw prompt wijzigt. Deze analyse is niet 100% betrouwbaar.

Gebruik deze optie als PSReadLine uw prompt op onverwachte manieren wijzigt. Neem eventuele volgspaties op.

Als uw promptfunctie er bijvoorbeeld uitziet zoals in het volgende voorbeeld:

function prompt { Write-Host -NoNewLine -ForegroundColor Yellow "$pwd"; return "# " }

Stel vervolgens het volgende in:

Set-PSReadLineOption -PromptText "# "

Type:String[]
Position:Named
Default value:>
Accept pipeline input:False
Accept wildcard characters:False
-ShowToolTips

Wanneer mogelijke voltooiingen worden weergegeven, worden knopinfo weergegeven in de lijst met voltooiingen.

Deze optie is standaard ingeschakeld. Deze optie is niet standaard ingeschakeld in eerdere versies van PSReadLine. Als u deze optie wilt uitschakelen, stelt u deze optie in op $False.

Standaard is de eigenschap ShowToolTips van het globale PSConsoleReadLineOptions-object ingesteld op True. Met deze SwitchParameter stelt u de eigenschapswaarde in op True. Als u de eigenschapswaarde wilt wijzigen, moet u de waarde van de SwitchParameter als volgt opgeven: -ShowToolTips:$False

Met de volgende opdracht kunt u de eigenschapswaarde rechtstreeks instellen:

(Get-PSReadLineOption).ShowToolTips = $False

Type:SwitchParameter
Position:Named
Default value:True
Accept pipeline input:False
Accept wildcard characters:False
-ViModeChangeHandler

Wanneer de ViModeIndicator is ingesteld Scriptop, wordt het opgegeven scriptblok telkens aangeroepen wanneer de modus wordt gewijzigd. Het scriptblok wordt één argument van het type ViModeopgegeven.

Deze parameter is geïntroduceerd in PowerShell 7.

Type:ScriptBlock
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-ViModeIndicator

Met deze optie stelt u de visuele indicatie voor de huidige Vi-modus in. Invoegmodus of opdrachtmodus.

De geldige waarden zijn als volgt:

  • Geen: Er is geen indicatie.
  • Prompt: de prompt verandert de kleur.
  • Cursor: De cursor verandert de grootte.
  • Script: Door de gebruiker opgegeven tekst wordt afgedrukt.
Type:ViModeStyle
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-WordDelimiters

Hiermee geeft u de tekens op die woorden scheiden voor functies zoals ForwardWord of KillWord.

Type:String
Position:Named
Default value:;:,.[]{}()/\|^&*-=+'"---
Accept pipeline input:False
Accept wildcard characters:False

Invoerwaarden

None

U kunt objecten niet doorsluisen naar Set-PSReadLineOption.

Uitvoerwaarden

None

Met deze cmdlet wordt geen uitvoer gegenereerd.