Konfigurace světlého barevného motivu

Pro terminál tmavého pozadí jsou vybrány výchozí barvy PowerShellu i PSReadLine . Někteří uživatelé se ale můžou rozhodnout použít světlé pozadí s tmavým textem. Vzhledem k tomu, že většina výchozích barev nenastavuje pozadí, použití světlých barev popředí na světlém pozadí vytváří nečitelný text.

Počínaje PowerShellem 7.2 přidá PowerShell barevný výstup do výchozího prostředí konzoly. Tato $PSStyle funkce není nativně dostupná ve Windows PowerShellu. Pomocí modulu PSStyle z galerie Prostředí PowerShell však můžete nastavit hodnoty barev pomocí stejných technik popsaných v tomto článku.

Použité barvy jsou definovány v $PSStyle proměnné a jsou navrženy pro tmavé pozadí. Tyto barvy můžete změnit, aby lépe fungovaly pro terminál se světlým pozadím.

PSReadLine umožňuje definovat barvy pro 18 různých elementů syntaxe. Aktuální nastavení můžete zobrazit pomocí rutiny Get-PSReadLineOption .

EditMode                               : Windows
AddToHistoryHandler                    : System.Func`2[System.String,System.Object]
HistoryNoDuplicates                    : True
HistorySavePath                        : C:\Users\user1\AppData\Roaming\Microsoft\Wind...
HistorySaveStyle                       : SaveIncrementally
HistorySearchCaseSensitive             : False
HistorySearchCursorMovesToEnd          : False
MaximumHistoryCount                    : 4096
ContinuationPrompt                     : >>
ExtraPromptLineCount                   : 0
PromptText                             : {> }
BellStyle                              : Audible
DingDuration                           : 50
DingTone                               : 1221
CommandsToValidateScriptBlockArguments : {ForEach-Object, %, Invoke-Command, icm...}
CommandValidationHandler               :
CompletionQueryItems                   : 100
MaximumKillRingCount                   : 10
ShowToolTips                           : True
ViModeIndicator                        : None
WordDelimiters                         : ;:,.[]{}()/\|^&*-=+'"-—―
AnsiEscapeTimeout                      : 100
PredictionSource                       : HistoryAndPlugin
PredictionViewStyle                    : InlineView
CommandColor                           : "`e[93m"
CommentColor                           : "`e[32m"
ContinuationPromptColor                : "`e[37m"
DefaultTokenColor                      : "`e[37m"
EmphasisColor                          : "`e[96m"
ErrorColor                             : "`e[91m"
InlinePredictionColor                  : "`e[38;5;238m"
KeywordColor                           : "`e[92m"
ListPredictionColor                    : "`e[33m"
ListPredictionSelectedColor            : "`e[48;5;238m"
MemberColor                            : "`e[97m"
NumberColor                            : "`e[97m"
OperatorColor                          : "`e[90m"
ParameterColor                         : "`e[90m"
SelectionColor                         : "`e[30;47m"
StringColor                            : "`e[36m"
TypeColor                              : "`e[37m"
VariableColor                          : "`e[92m"

Nastavení barev jsou uložena jako řetězce obsahující řídicí sekvence ANSI, které mění barvu ve vašem terminálu. Set-PSReadLineOption Pomocí rutiny můžete změnit barvy na hodnoty, které fungují lépe pro světlé pozadí.

Definování barev pro světlý motiv

Prostředí PowerShell ISE je možné nakonfigurovat tak, aby používalo světlý motiv pro podokna editoru i konzoly. Můžete také zobrazit a změnit barvy, které isE používá pro různé typy syntaxe a výstupu. Tyto volby barev můžete použít k definování podobného motivu pro PSReadLine.

Následující hashtable definuje barvy pro PSReadLine , které napodobují barvy v prostředí PowerShell ISE.

$ISETheme = @{
    Command                  = $PSStyle.Foreground.FromRGB(0x0000FF)
    Comment                  = $PSStyle.Foreground.FromRGB(0x006400)
    ContinuationPrompt       = $PSStyle.Foreground.FromRGB(0x0000FF)
    Default                  = $PSStyle.Foreground.FromRGB(0x0000FF)
    Emphasis                 = $PSStyle.Foreground.FromRGB(0x287BF0)
    Error                    = $PSStyle.Foreground.FromRGB(0xE50000)
    InlinePrediction         = $PSStyle.Foreground.FromRGB(0x93A1A1)
    Keyword                  = $PSStyle.Foreground.FromRGB(0x00008b)
    ListPrediction           = $PSStyle.Foreground.FromRGB(0x06DE00)
    Member                   = $PSStyle.Foreground.FromRGB(0x000000)
    Number                   = $PSStyle.Foreground.FromRGB(0x800080)
    Operator                 = $PSStyle.Foreground.FromRGB(0x757575)
    Parameter                = $PSStyle.Foreground.FromRGB(0x000080)
    String                   = $PSStyle.Foreground.FromRGB(0x8b0000)
    Type                     = $PSStyle.Foreground.FromRGB(0x008080)
    Variable                 = $PSStyle.Foreground.FromRGB(0xff4500)
    ListPredictionSelected   = $PSStyle.Background.FromRGB(0x93A1A1)
    Selection                = $PSStyle.Background.FromRGB(0x00BFFF)
}

Poznámka:

Metodu FromRGB() můžete použít k vytvoření escape sekvencí ANSI pro požadované barvy. Další informace o $PSStylenaleznete v tématu about_ANSI_Terminals. Další informace o řídicích sekvencích ANSI najdete v řídicím kódu ANSI článku na Wikipedii.

Nastavení barevného motivu v profilu

Pokud chcete mít nastavení barev, které chcete mít v každé relaci PowerShellu, musíte do skriptu profilu PowerShellu přidat nastavení konfigurace. Příklad naleznete v Přizpůsobení vašeho shellového prostředí.

Přidejte do svého profilu proměnnou $ISETheme a následující Set-PSReadLineOption příkaz.

Set-PSReadLineOption -Colors $ISETheme

Následující nastavení fungují lépe pro světlý terminál na pozadí.

$PSStyle.Formatting.FormatAccent       = $PSStyle.Foreground.Green
$PSStyle.Formatting.TableHeader        = $PSStyle.Foreground.Green
$PSStyle.Formatting.ErrorAccent        = $PSStyle.Foreground.Cyan
$PSStyle.Formatting.Error              = $PSStyle.Foreground.Red
$PSStyle.Formatting.Warning            = $PSStyle.Foreground.Yellow
$PSStyle.Formatting.Verbose            = $PSStyle.Foreground.Yellow
$PSStyle.Formatting.Debug              = $PSStyle.Foreground.Yellow
$PSStyle.Progress.Style                = $PSStyle.Foreground.Yellow
$PSStyle.FileInfo.Directory            = $PSStyle.Background.FromRgb(0x2f6aff) +
                                         $PSStyle.Foreground.BrightWhite
$PSStyle.FileInfo.SymbolicLink         = $PSStyle.Foreground.Cyan
$PSStyle.FileInfo.Executable           = $PSStyle.Foreground.BrightMagenta
$PSStyle.FileInfo.Extension['.ps1']    = $PSStyle.Foreground.Cyan
$PSStyle.FileInfo.Extension['.ps1xml'] = $PSStyle.Foreground.Cyan
$PSStyle.FileInfo.Extension['.psd1']   = $PSStyle.Foreground.Cyan
$PSStyle.FileInfo.Extension['.psm1']   = $PSStyle.Foreground.Cyan

Volba barev pro usnadnění přístupu

Barevný motiv ISE nemusí fungovat pro uživatele s barvoslepostí nebo jinými podmínkami, které omezují jejich schopnost zobrazit barvy.

Konsorcium W3C (World Wide Web Consortium) obsahuje doporučení pro použití barev pro usnadnění přístupu. Pokyny pro přístupnost webového obsahu (WCAG) 2.1 doporučují, aby "vizuální prezentace textu a obrázků textu má kontrastní poměr nejméně 4,5:1". Další informace naleznete v tématu Kritérium úspěchu 1.4.3 Kontrast (minimum).

Web Poměr kontrastu poskytuje nástroj, který umožňuje vybrat barvy popředí a pozadí a měřit kontrast. Tento nástroj můžete použít k vyhledání kombinací barev, které jsou pro vás nejvhodnější.