Set-PSReadLineOption
Anpassar beteendet för kommandoradsredigering i PSReadLine.
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
Cmdleten Set-PSReadLineOption anpassar psReadLine-modulens beteende när du redigerar kommandoraden. Om du vill visa PSReadLine-inställningarna använder du Get-PSReadLineOption.
Exempel
Exempel 1: Ange förgrunds- och bakgrundsfärger
I det här exemplet anges PSReadLine för att visa kommentarstoken med grön förgrundstext i en grå bakgrund. I escape-sekvensen som används i exemplet representerar 32 förgrundsfärgen och 47 representerar bakgrundsfärgen.
Set-PSReadLineOption -Colors @{ "Comment"="`e[32;47m" }
Du kan välja att endast ange en förgrundstextfärg. Till exempel en ljusgrön förgrundstextfärg för kommentarstoken : "Comment"="`e[92m".
Exempel 2: Ange klockstil
I det här exemplet svarar PSReadLine på fel eller villkor som kräver användaruppmärkning. BellStyle är inställt på att avge ett hörbart pip vid 1221 Hz för 60 ms.
Set-PSReadLineOption -BellStyle Audible -DingTone 1221 -DingDuration 60
Anteckning
Den här funktionen kanske inte fungerar på alla värdar på plattformar.
Exempel 3: Ange flera alternativ
Set-PSReadLineOption kan ange flera alternativ med en hash-tabell.
$PSReadLineOptions = @{
EditMode = "Emacs"
HistoryNoDuplicates = $true
HistorySearchCursorMovesToEnd = $true
Colors = @{
"Command" = "#8181f7"
}
}
Set-PSReadLineOption @PSReadLineOptions
Hash-tabellen $PSReadLineOptions anger nycklar och värden. Set-PSReadLineOption använder nycklar och värden med @PSReadLineOptions för att uppdatera PSReadLine-alternativen .
Du kan visa de nycklar och värden som anger namnet på hashtabellen $PSReadLineOptions på PowerShell-kommandoraden.
Exempel 4: Ange flera färgalternativ
Det här exemplet visar hur du anger fler än ett färgvärde i ett enda kommando.
Set-PSReadLineOption -Colors @{
Command = 'Magenta'
Number = 'DarkGray'
Member = 'DarkGray'
Operator = 'DarkGray'
Type = 'DarkGray'
Variable = 'DarkGreen'
Parameter = 'DarkGreen'
ContinuationPrompt = 'DarkGray'
Default = 'DarkGray'
}
Exempel 5: Ange färgvärden för flera typer
Det här exemplet visar tre olika metoder för hur du anger färgen på token som visas i 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"
}
Exempel 6: Använd ViModeChangeHandler för att visa Ändringar i Vi-läge
Det här exemplet genererar en VT-markörändring som svar på en Ändring i Vi-läge .
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
Funktionen OnViModeChange anger markörens alternativ för Vi-lägena : infoga och kommandot.
ViModeChangeHandler använder providern Function: för att referera till OnViModeChange som ett skriptblocksobjekt.
Mer information finns i about_Providers.
Parametrar
Anger en ScriptBlock som styr vilka kommandon som läggs till i PSReadLine-historiken .
ScriptBlock tar emot kommandoraden som indata. Om ScriptBlock returnerar $Trueläggs kommandoraden till i historiken.
| Type: | Func<T,TResult>[System.String,System.Object] |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
Det här alternativet är specifikt för Windows när indata omdirigeras, till exempel när du kör under tmux eller screen.
Med omdirigerade indata i Windows skickas många nycklar som en sekvens med tecken som börjar med escape-tecknet. Det går inte att skilja mellan ett enda escape-tecken följt av fler tecken och en giltig escape-sekvens.
Antagandet är att terminalen kan skicka tecknen snabbare än en användartyp. PSReadLine väntar på den här tidsgränsen innan den drar slutsatsen att den har fått en fullständig escape-sekvens.
Om du ser slumpmässiga eller oväntade tecken när du skriver kan du justera den här tidsgränsen.
| Type: | Int32 |
| Position: | Named |
| Default value: | 100 |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
Anger hur PSReadLine svarar på olika fel och tvetydiga villkor.
Giltiga värden är följande:
- Hörbart: Ett kort pip.
- Visuellt objekt: Texten blinkar kort.
- Ingen: Ingen feedback.
| Type: | BellStyle |
| Position: | Named |
| Default value: | Audible |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
Parametern Färger anger olika färger som används av PSReadLine.
Argumentet är en hash-tabell där nycklarna anger vilket element och värdena anger färgen. Mer information finns i about_Hash_Tables.
Färger kan antingen vara ett värde från ConsoleColor, till exempel [ConsoleColor]::Red, eller en giltig ANSI-escape-sekvens. Giltiga escape-sekvenser beror på terminalen. I PowerShell 5.0 är $([char]0x1b)[91mett exempel på en escape-sekvens för röd text . I PowerShell 6 och senare är `e[91msamma escape-sekvens . Du kan ange andra escape-sekvenser, inklusive följande typer:
Två färginställningar har lagts till för att stödja anpassning av ListView i PSReadLine 2.2.0:
ListPredictionColor – ange färg för huvudtecknet
>och det avslutande källnamnet, t.ex.[History]. Som standard användsDarkYellowden som förgrundsfärg.ListPredictionSelectedColor – ange färg för att ange att ett listobjekt har valts. Som standard används
DarkBlackden som bakgrundsfärg.256 färg
24-bitars färg
Förgrund, bakgrund eller båda
Invertera, fetstil
Mer information om ANSI-färgkoder finns i ANSI-escape-kod i Wikipedia.
De giltiga nycklarna är:
- ContinuationPrompt: Färgen på fortsättningsprompten.
- Betoning: Betoningsfärgen. Till exempel matchande text vid sökning i historiken.
- Fel: Felfärgen. Till exempel i prompten.
- Markering: Färgen som ska markera menyvalet eller den markerade texten.
- Standard: Standardtokenfärg.
- Kommentar: Kommentarstokenfärgen.
- Nyckelord: Nyckelordets tokenfärg.
- Sträng: Strängtokenfärgen.
- Operator: Operatorns tokenfärg.
- Variabel: Variabeltokens färg.
- Kommando: Kommandotokens färg.
- Parameter: Parametertokenfärgen.
- Typ: Typtokenfärg.
- Tal: Färgen på nummertoken.
- Medlem: Tokenfärg för medlemsnamn.
- InlinePrediction: Färgen på den infogade vyn för förutsägelseförslaget.
| Type: | Hashtable |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
Anger en ScriptBlock som anropas från ValidateAndAcceptLine. Om ett undantag utlöses misslyckas verifieringen och felet rapporteras.
Innan du utlöser ett undantag kan valideringshanteraren placera markören vid felpunkten för att göra det enklare att åtgärda. En valideringshanterare kan också ändra kommandoraden, till exempel för att korrigera vanliga typografiska fel.
ValidateAndAcceptLine används för att undvika att röra historiken med kommandon som inte kan fungera.
| Type: | Action<T>[CommandAst] |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
Anger det maximala antalet slutförandeobjekt som visas utan att fråga.
Om antalet objekt som ska visas är större än det här värdet uppmanar PSReadLineja/nej innan slutförandeobjekten visas.
| Type: | Int32 |
| Position: | Named |
| Default value: | 100 |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
Anger strängen som visas i början av efterföljande rader när indata för flera rader anges. Standardvärdet är dubbelt större än tecken (>>). En tom sträng är giltig.
| Type: | String |
| Position: | Named |
| Default value: | >> |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
Anger varaktigheten för pipet när BellStyle är inställt på Audible.
| Type: | Int32 |
| Position: | Named |
| Default value: | 50ms |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
Anger tonen i Hertz (Hz) för pipet när BellStyle är inställt på Audible.
| Type: | Int32 |
| Position: | Named |
| Default value: | 1221 |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
Anger redigeringsläget för kommandoraden. Med den här parametern återställs alla nyckelbindningar som anges av Set-PSReadLineKeyHandler.
Giltiga värden är följande:
- Windows: Nyckelbindningar emulerar PowerShell, cmd och Visual Studio.
- Emacs: Nyckelbindningar emulerar Bash eller Emacs.
- Vi: Nyckelbindningar emulerar Vi.
Använd Get-PSReadLineKeyHandler för att se nyckelbindningarna för den för tillfället konfigurerade EditMode.
| Type: | EditMode |
| Position: | Named |
| Default value: | Windows |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
Anger antalet extra rader.
Om uppmaningen sträcker sig över mer än en rad anger du ett värde för den här parametern. Använd det här alternativet om du vill att extra rader ska vara tillgängliga när PSReadLine visar prompten efter att ha visat utdata. PSReadLine returnerar till exempel en lista över slutföranden.
Det här alternativet behövs mindre än i tidigare versioner av PSReadLine, men är användbart när InvokePrompt funktionen används.
| Type: | Int32 |
| Position: | Named |
| Default value: | 0 |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
Det här alternativet styr återkallningsbeteendet. Dubblettkommandon läggs fortfarande till i historikfilen. När det här alternativet har angetts visas endast det senaste anropet när du återkallar kommandon. Upprepade kommandon läggs till i historiken för att bevara ordningen under återkallningen. Men vanligtvis vill du inte se kommandot flera gånger när du återkallar eller söker i historiken.
Som standard är egenskapen HistoryNoDuplicates för det globala PSConsoleReadLineOptions-objektet inställt på True. Med den här SwitchParametern anges egenskapsvärdet till True. Om du vill ändra egenskapsvärdet måste du ange värdet för SwitchParameter enligt följande: -HistoryNoDuplicates:$False.
Med följande kommando kan du ange egenskapsvärdet direkt:
(Get-PSReadLineOption).HistoryNoDuplicates = $False
| Type: | SwitchParameter |
| Position: | Named |
| Default value: | False |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
Anger sökvägen till filen där historiken sparas. Datorer som kör Windows- eller icke-Windows-plattformar lagrar filen på olika platser. Filnamnet lagras i en variabel $($host.Name)_history.txt, till exempel ConsoleHost_history.txt.
Om du inte använder den här parametern är standardsökvägen följande:
Windows
$env:APPDATA\Microsoft\Windows\PowerShell\PSReadLine\$($host.Name)_history.txt
icke-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 |
Anger hur PSReadLine sparar historik.
Giltiga värden är följande:
- SaveIncre mental: Spara historik när varje kommando har körts och dela över flera instanser av PowerShell.
- SaveAtExit: Lägg till historikfil när PowerShell avslutas.
- SaveNothing: Använd inte en historikfil.
| Type: | HistorySaveStyle |
| Position: | Named |
| Default value: | SaveIncrementally |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
Anger att historiksökning är skiftlägeskänsligt i funktioner som ReverseSearchHistory eller HistorySearchBackward.
Som standard är egenskapen HistorySearchCaseSensitive för det globala OBJEKTET PSConsoleReadLineOptions inställt på False. Med den här SwitchParametern anges egenskapsvärdet till True. Om du vill ändra tillbaka egenskapsvärdet måste du ange värdet för SwitchParameter enligt följande: -HistorySearchCaseSensitive:$False.
Med följande kommando kan du ange egenskapsvärdet direkt:
(Get-PSReadLineOption).HistorySearchCaseSensitive = $False
| Type: | SwitchParameter |
| Position: | Named |
| Default value: | False |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
Anger att markören flyttas till slutet av kommandon som du läser in från historiken med hjälp av en sökning.
När den här parametern är inställd $Falsepå förblir markören vid den position som var när du tryckte på uppåt- eller nedåtpilarna.
Som standard är egenskapen HistorySearchCursorMovesToEnd för det globala PSConsoleReadLineOptions-objektet inställt på False. Med den här SwitchParametern anger du egenskapsvärdet till True. Om du vill ändra tillbaka egenskapsvärdet måste du ange värdet för SwitchParameter enligt följande: -HistorySearchCursorMovesToEnd:$False.
Med följande kommando kan du ange egenskapsvärdet direkt:
(Get-PSReadLineOption).HistorySearchCursorMovesToEnd = $False
| Type: | SwitchParameter |
| Position: | Named |
| Default value: | False |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
Anger det maximala antalet kommandon som ska sparas i PSReadLine-historiken .
PSReadLine-historiken är separat från PowerShell-historiken.
| Type: | Int32 |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
Anger det maximala antalet objekt som lagras i kill-ringen.
| Type: | Int32 |
| Position: | Named |
| Default value: | 10 |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
Anger källan för PSReadLine för att få förslag på förutsägelser.
Giltiga värden är:
- Ingen – inaktivera funktionen predictive IntelliSense (standard).
- Historik – aktivera funktionen predictive IntelliSense och använd PSReadLine-historiken som enda källa.
- Plugin -aktivera funktionen predictive IntelliSense och använd plugin-program (
CommandPrediction) som enda källa. Det här värdet lades till i PSReadLine 2.2.0 - HistoryAndPlugin – aktivera funktionen predictive IntelliSense och använd både historik och plugin-program som källor. Det här värdet lades till i PSReadLine 2.2.0
| Type: | Microsoft.PowerShell.PredictionSource |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
Anger formatmallen för visning av förutsägelsetexten. Standardvärdet är InlineView.
- InlineView – stilen som finns idag, liknande den i fish shell och zsh. (standard)
- ListView – förslag återges i en listruta och användarna kan välja att använda UpArrow och DownArrow.
Den här parametern lades till i PSReadLine 2.2.0
| Type: | Microsoft.PowerShell.PredictionViewStyle |
| Position: | Named |
| Default value: | InlineView |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
När det uppstår ett parsningsfel ändrar PSReadLine en del av prompten röd. PSReadLine analyserar promptfunktionen för att avgöra hur du bara ändrar färgen på en del av prompten. Den här analysen är inte 100 % tillförlitlig.
Använd det här alternativet om PSReadLine ändrar prompten på oväntade sätt. Ta med eventuella avslutande blanksteg.
Om promptfunktionen till exempel ser ut som i följande exempel:
function prompt { Write-Host -NoNewLine -ForegroundColor Yellow "$pwd"; return "# " }
Ange sedan:
Set-PSReadLineOption -PromptText "# "
| Type: | String[] |
| Position: | Named |
| Default value: | > |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
När du visar möjliga slutföranden visas knappbeskrivningar i listan över slutföranden.
Det här alternativet är aktiverat som standard. Det här alternativet var inte aktiverat som standard i tidigare versioner av PSReadLine. Om du vill inaktivera anger du det här alternativet till $False.
Som standard är egenskapen ShowToolTips för det globala OBJEKTET PSConsoleReadLineOptions inställt på True. Med den här SwitchParametern anges egenskapsvärdet till True. Om du vill ändra egenskapsvärdet måste du ange värdet för SwitchParameter enligt följande: -ShowToolTips:$False.
Med följande kommando kan du ange egenskapsvärdet direkt:
(Get-PSReadLineOption).ShowToolTips = $False
| Type: | SwitchParameter |
| Position: | Named |
| Default value: | True |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
När ViModeIndicator har angetts till Scriptanropas det angivna skriptblocket varje gång läget ändras. Skriptblocket tillhandahålls ett argument av typen ViMode.
Den här parametern introducerades i PowerShell 7.
| Type: | ScriptBlock |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
Det här alternativet anger den visuella indikationen för det aktuella Vi-läget . Antingen infogningsläge eller kommandoläge.
Giltiga värden är följande:
- Ingen: Det finns ingen indikation.
- Fråga: Prompten ändrar färg.
- Markör: Markören ändrar storlek.
- Skript: Användarspecificerad text skrivs ut.
| Type: | ViModeStyle |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
Anger de tecken som avgränsar ord för funktioner som ForwardWord eller KillWord.
| Type: | String |
| Position: | Named |
| Default value: | ;:,.[]{}()/\|^&*-=+'"--- |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
Indata
None
Du kan inte skicka objekt till Set-PSReadLineOption.
Utdata
None
Den här cmdleten genererar inga utdata.
Relaterade länkar
Feedback
Skicka och visa feedback för