Set-PSReadLineOption

Přizpůsobí chování úprav příkazového řádku v 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

Rutina Set-PSReadLineOption přizpůsobí chování modulu PSReadLine při úpravách příkazového řádku. Chcete-li zobrazit nastavení PSReadLine , použijte Get-PSReadLineOption.

Příklady

Příklad 1: Nastavení barev popředí a pozadí

Tento příklad nastaví PSReadLine tak, aby zobrazoval token Komentáře se zeleným textem popředí na šedém pozadí. V řídicí sekvenci použité v příkladu představuje 32 barvu popředí a 47 představuje barvu pozadí.

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

Můžete nastavit pouze barvu textu popředí. Například jasně zelená barva textu popředí pro token Komentáře : "Comment"="`e[92m".

Příklad 2: Nastavení stylu zvonku

V tomto příkladu PSReadLine odpoví na chyby nebo podmínky, které vyžadují pozornost uživatele. BellStyle je nastaven tak, aby vygeneruje zvukové pípnutí při 1221 Hz pro 60 ms.

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

Poznámka

Tato funkce nemusí fungovat ve všech hostitelích na platformách.

Příklad 3: Nastavení více možností

Set-PSReadLineOption může nastavit více možností pomocí hashovací tabulky.

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

Tabulka $PSReadLineOptions hash nastaví klíče a hodnoty. Set-PSReadLineOption používá klíče a hodnoty k @PSReadLineOptions aktualizaci možností PSReadLine .

Klíče a hodnoty, které zadávají název tabulky hash, $PSReadLineOptions můžete zobrazit na příkazovém řádku PowerShellu.

Příklad 4: Nastavení více možností barev

Tento příklad ukazuje, jak nastavit více než jednu hodnotu barvy v jednom příkazu.

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

Příklad 5: Nastavení hodnot barev pro více typů

Tento příklad ukazuje tři různé metody, jak nastavit barvu tokenů zobrazených v 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"
}

Příklad 6: Použití ViModeChangeHandler k zobrazení změn v režimu Vi

Tento příklad vygeneruje řídicí znak změny kurzoru VT v reakci na změnu režimu Vi .

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

Funkce OnViModeChange nastaví možnosti kurzoru pro režimy Vi : insert a command. ViModeChangeHandler používá Function: zprostředkovatele k odkazování na OnViModeChange jako objekt bloku skriptu.

Další informace najdete v tématu about_Providers.

Parametry

-AddToHistoryHandler

Určuje ScriptBlock , který určuje, které příkazy se přidají do historie PSReadLine .

ScriptBlock obdrží příkazový řádek jako vstup. Pokud skriptBlock vrátí $True, příkazový řádek se přidá do historie.

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

-AnsiEscapeTimeout

Tato možnost je specifická pro Systém Windows při přesměrování vstupu, například při spuštění pod tmux nebo screen.

S přesměrovaným vstupem ve Windows se mnoho klíčů odesílá jako posloupnost znaků začínajících řídicím znakem. Není možné rozlišovat mezi jedním řídicím znakem následovaným více znaky a platnou řídicí sekvencí.

Předpokladem je, že terminál může znaky odesílat rychleji než typ uživatele. PSReadLine čeká na tento časový limit, než se uzavře, že obdržel úplnou řídicí sekvenci.

Pokud se při psaní zobrazí náhodné nebo neočekávané znaky, můžete tento časový limit upravit.

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

-BellStyle

Určuje, jak PSReadLine reaguje na různé chybové a nejednoznačné podmínky.

Platné hodnoty jsou následující:

  • Zvuk: Krátká pípnutí.
  • Vizuál: Text krátce bliká.
  • Žádné: Žádná zpětná vazba.
Type:BellStyle
Position:Named
Default value:Audible
Accept pipeline input:False
Accept wildcard characters:False

-Colors

Parametr Colors určuje různé barvy používané psReadLine.

Argument je tabulka hash, kde klíče určují, který prvek a hodnoty určují barvu. Další informace najdete v tématu about_Hash_Tables.

Barvy můžou být buď hodnota z ConsoleColor, nebo [ConsoleColor]::Redplatnou řídicí sekvenci ANSI. Platné řídicí sekvence závisí na vašem terminálu. V PowerShellu 5.0 je $([char]0x1b)[91mpříkladem řídicí sekvence pro červený text . V PowerShellu 6 a novějším je `e[91mstejná řídicí sekvence . Můžete zadat další řídicí sekvence, včetně následujících typů:

Byla přidána dvě nastavení barev pro podporu přizpůsobení ListView psReadLine 2.2.0:

  • ListPredictionColor - nastavit barvu pro úvodní > znak a koncový název zdroje, například [History]. Ve výchozím nastavení se používá DarkYellow jako barva popředí.

  • ListPredictionSelectedColor – nastavit barvu pro označení položky seznamu je vybrána. Ve výchozím nastavení se používá DarkBlack jako barva pozadí.

  • 256 barev

  • 24bitová barva

  • Popředí, pozadí nebo obojí

  • Inverzní, tučné

Další informace o barevných kódech ANSI najdete v řídicím kódu ANSI na Wikipedii.

Platné klíče zahrnují:

  • ContinuationPrompt: Barva výzvy k pokračování.
  • Důraz: Barva zvýraznění. Například odpovídající text při hledání historie.
  • Chyba: Barva chyby. Například na příkazovém řádku.
  • Výběr: Barva, která zvýrazní výběr nabídky nebo vybraný text.
  • Výchozí: Výchozí barva tokenu.
  • Komentář: Barva tokenu komentáře
  • Klíčové slovo: Barva tokenu klíčového slova.
  • Řetězec: Barva tokenu řetězce.
  • Operátor: Barva tokenu operátoru.
  • Proměnná: Barva tokenu proměnné.
  • Příkaz: Barva tokenu příkazu.
  • Parametr: Barva tokenu parametru.
  • Typ: Barva tokenu typu.
  • Číslo: Barva tokenu čísla.
  • Člen: Barva tokenu názvu člena.
  • InlinePrediction: Barva pro vložené zobrazení prediktivního návrhu.
Type:Hashtable
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-CommandValidationHandler

Určuje ScriptBlock , který je volána z ValidateAndAcceptLine. Pokud dojde k vyvolání výjimky, ověření selže a zobrazí se chyba.

Před vyvolání výjimky může obslužná rutina ověření umístit kurzor na bod chyby, aby bylo snazší opravu vyřešit. Obslužná rutina ověření může také změnit příkazový řádek, například opravit běžné typografické chyby.

Funkce ValidateAndAcceptLine se používá k tomu, abyste se vyhnuli nepotřebným funkcím historie pomocí příkazů, které nefungují.

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

-CompletionQueryItems

Určuje maximální počet položek dokončení, které se zobrazí bez výzvy.

Pokud je počet zobrazených položek větší než tato hodnota, psReadLine před zobrazením položek dokončení zobrazí výzvu ano/ne .

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

-ContinuationPrompt

Určuje řetězec zobrazený na začátku následujících řádků při zadání víceřádkového vstupu. Výchozí hodnota je dvojitě větší než znaménka (>>). Prázdný řetězec je platný.

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

-DingDuration

Určuje dobu trvání pípnutí, pokud je bellStyle nastaven na Audible.

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

-DingTone

Určuje tón v Hertz (Hz) pípnutí, když je BellStyle nastaven na Audible.

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

-EditMode

Určuje režim úprav příkazového řádku. Pomocí tohoto parametru se resetují všechny klíčové vazby nastavené .Set-PSReadLineKeyHandler

Platné hodnoty jsou následující:

  • Windows: Vazby klíčů emulují PowerShell, cmd a Visual Studio.
  • Emacs: Klíčové vazby emulují Bash nebo Emacs.
  • Vi: Klíčové vazby emulují Vi.

Slouží Get-PSReadLineKeyHandler k zobrazení klíčových vazeb pro aktuálně nakonfigurované možnosti EditMode.

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

-ExtraPromptLineCount

Určuje počet řádků navíc.

Pokud výzva zahrnuje více než jeden řádek, zadejte hodnotu pro tento parametr. Tuto možnost použijte, pokud chcete, aby byly k dispozici další řádky, když PSReadLine zobrazí výzvu po zobrazení nějakého výstupu. PsReadLine například vrátí seznam dokončení.

Tato možnost je nutná méně než v předchozích verzích PSReadLine, ale je užitečná při InvokePrompt použití funkce.

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

-HistoryNoDuplicates

Tato možnost řídí chování odvolání. Duplicitní příkazy se stále přidávají do souboru historie. Pokud je tato možnost nastavená, zobrazí se při odvolání příkazů pouze poslední vyvolání. Opakované příkazy se přidají do historie, aby se zachovalo pořadí během odvolání. Obvykle ale nechcete, aby se příkaz při odvolání nebo vyhledávání historie zobrazoval několikrát.

Ve výchozím nastavení je vlastnost HistoryNoDuplicates globálního psConsoleReadLineOptions objektu nastavena na True. Pomocí tohoto přepínačeParameter nastaví hodnotu vlastnosti na True. Chcete-li změnit hodnotu vlastnosti, je nutné zadat hodnotu SwitchParameter následujícím způsobem: -HistoryNoDuplicates:$False.

Pomocí následujícího příkazu můžete nastavit hodnotu vlastnosti přímo:

(Get-PSReadLineOption).HistoryNoDuplicates = $False

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

-HistorySavePath

Určuje cestu k souboru, ve kterém je uložena historie. Počítače se systémem Windows nebo platformy bez Windows ukládají soubor do různých umístění. Název souboru je uložen v proměnné $($host.Name)_history.txt, například ConsoleHost_history.txt.

Pokud tento parametr nepoužíváte, výchozí cesta je následující:

Windows

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

jiné než 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

Určuje, jak PSReadLine ukládá historii.

Platné hodnoty jsou následující:

  • SaveIncrementally: Uložení historie po spuštění každého příkazu a sdílení napříč několika instancemi PowerShellu
  • SaveAtExit: Při ukončení PowerShellu se připojí soubor historie.
  • UložitNothing: Nepoužívejte soubor historie.
Type:HistorySaveStyle
Position:Named
Default value:SaveIncrementally
Accept pipeline input:False
Accept wildcard characters:False

-HistorySearchCaseSensitive

Určuje, že vyhledávání historie se rozlišují malá a velká písmena ve funkcích, jako je ReverseSearchHistory nebo HistorySearchBackward.

Ve výchozím nastavení je vlastnost HistorySearchCaseSensitive globální PSConsoleReadLineOptions objekt nastavena na False. Pomocí tohoto přepínačeParameter nastaví hodnotu vlastnosti na True. Chcete-li změnit hodnotu vlastnosti zpět, je nutné zadat hodnotu SwitchParameter následujícím způsobem: -HistorySearchCaseSensitive:$False.

Pomocí následujícího příkazu můžete nastavit hodnotu vlastnosti přímo:

(Get-PSReadLineOption).HistorySearchCaseSensitive = $False

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

-HistorySearchCursorMovesToEnd

Označuje, že kurzor se přesune na konec příkazů, které načtete z historie pomocí hledání. Pokud je tento parametr nastavený na $False, kurzor zůstane na pozici, kterou jste stiskli šipkami nahoru nebo dolů.

Ve výchozím nastavení je vlastnost HistorySearchCursorMovesToEnd globálního objektu PSConsoleReadLineOptions nastavena na False. Pomocí tohoto přepínačeParameter nastavte hodnotu vlastnosti na True. Chcete-li změnit hodnotu vlastnosti zpět, je nutné zadat hodnotu SwitchParameter následujícím způsobem: -HistorySearchCursorMovesToEnd:$False.

Pomocí následujícího příkazu můžete nastavit hodnotu vlastnosti přímo:

(Get-PSReadLineOption).HistorySearchCursorMovesToEnd = $False

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

-MaximumHistoryCount

Určuje maximální počet příkazů, které se mají uložit v historii PSReadLine .

Historie PSReadLine je oddělená od historie PowerShellu.

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

-MaximumKillRingCount

Určuje maximální počet položek uložených v okruhu kill.

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

-PredictionSource

Určuje zdroj psReadLine pro získání prediktivních návrhů.

Platné hodnoty jsou:

  • Žádné – zakažte funkci prediktivní technologie IntelliSense (výchozí).
  • Historie – povolte prediktivní funkci IntelliSense a jako jediný zdroj použijte historii PSReadLine.
  • Modul plug-in – povolte prediktivní funkci IntelliSense a jako jediný zdroj použijte moduly plug-in (CommandPrediction). Tato hodnota byla přidána v PSReadLine 2.2.0
  • HistoryAndPlugin – povolte prediktivní funkci IntelliSense a jako zdroje použijte historii i modul plug-in. Tato hodnota byla přidána v PSReadLine 2.2.0
Type:Microsoft.PowerShell.PredictionSource
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-PredictionViewStyle

Nastaví styl zobrazení prediktivního textu. Výchozí hodnota je InlineView.

  • InlineView - styl jako existující dnes, podobný jako v rybím shellu a zsh. (výchozí)
  • ListView – návrhy se vykreslují v rozevíracím seznamu a uživatelé můžou vybrat možnost UpArrow a DownArrow.

Tento parametr byl přidán v PSReadLine 2.2.0

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

-PromptText

Pokud dojde k chybě analýzy, psReadLine změní část výzvy červeně. PSReadLine analyzuje funkci výzvy a určí, jak změnit pouze barvu části výzvy. Tato analýza není 100% spolehlivá.

Tuto možnost použijte, pokud psReadLine mění vaši výzvu neočekávanými způsoby. Zahrňte všechny koncové prázdné znaky.

Pokud například funkce výzvy vypadala jako v následujícím příkladu:

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

Pak nastavte:

Set-PSReadLineOption -PromptText "# "

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

-ShowToolTips

Při zobrazení možných dokončení se popisy zobrazí v seznamu dokončení.

Tato možnost je ve výchozím nastavení povolená. Tato možnost nebyla ve výchozím nastavení povolená v předchozích verzích PSReadLine. Chcete-li zakázat, nastavte tuto možnost na $Falsehodnotu .

Ve výchozím nastavení je vlastnost ShowToolTips globální psConsoleReadLineOptions objektu nastavena na True. Pomocí tohoto přepínačeParameter nastaví hodnotu vlastnosti na True. Chcete-li změnit hodnotu vlastnosti, je nutné zadat hodnotu SwitchParameter následujícím způsobem: -ShowToolTips:$False.

Pomocí následujícího příkazu můžete nastavit hodnotu vlastnosti přímo:

(Get-PSReadLineOption).ShowToolTips = $False

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

-ViModeChangeHandler

Když je ViModeIndicator nastaven na Script, bude vyvolán blok skriptu zadaný při každé změně režimu. Blok skriptu je zadán jeden argument typu ViMode.

Tento parametr byl zaveden v PowerShellu 7.

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

-ViModeIndicator

Tato možnost nastaví vizuální indikaci pro aktuální režim Vi . Režim vložení nebo režim příkazu

Platné hodnoty jsou následující:

  • Žádné: Neexistuje žádná indikace.
  • Výzva: Barva výzvy se změní.
  • Kurzor: Změní velikost kurzoru.
  • Skript: Text zadaný uživatelem se vytiskne.
Type:ViModeStyle
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-WordDelimiters

Určuje znaky, které oddělovají slova pro funkce, jako je ForwardWord nebo KillWord.

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

Vstupy

None

Objekty nelze roušit do Set-PSReadLineOption.

Výstupy

None

Tato rutina negeneruje žádný výstup.