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
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 |
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 |
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 |
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 gebruiktDarkYellowals voorgrondkleur.ListPredictionSelectedColor - kleur instellen om aan te geven dat een lijstitem is geselecteerd. Standaard wordt deze gebruikt
DarkBlackals 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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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.
Verwante koppelingen
Feedback
Feedback verzenden en weergeven voor