Udostępnij za pośrednictwem


Konfigurowanie motywu w kolorze jasnym

Kolory domyślne zarówno dla programu PowerShell, jak i programu PSReadLine są wybierane dla terminalu ciemnego tła. Jednak niektórzy użytkownicy mogą zdecydować się na użycie jasnego tła z ciemnym tekstem. Ponieważ większość kolorów domyślnych nie ustawia tła, użycie jasnych kolorów pierwszego planu na jasnym tle powoduje wygenerowanie nieczytelnego tekstu.

Funkcja PSReadLine umożliwia definiowanie kolorów dla 18 różnych elementów składni. Bieżące ustawienia można wyświetlić przy użyciu Get-PSReadLineOption polecenia cmdlet .

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"

Ustawienia kolorów są przechowywane jako ciągi zawierające sekwencje ucieczki ANSI, które zmieniają kolor w terminalu. Set-PSReadLineOption Za pomocą polecenia cmdlet można zmienić kolory na wartości, które działają lepiej w przypadku jasnego tła.

Definiowanie kolorów dla motywu jasnego

Program PowerShell ISE można skonfigurować do używania motywu lekkiego zarówno w okienkach edytora, jak i konsoli. Można również wyświetlać i zmieniać kolory używane przez ise dla różnych typów składni i danych wyjściowych. Możesz użyć tych opcji kolorów, aby zdefiniować podobny motyw dla elementu PSReadLine.

Poniższa tabela skrótu definiuje kolory dla elementu PSReadLine , które naśladują kolory w programie 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)
}

Uwaga / Notatka

W programie PowerShell 7.2 lub nowszym możesz użyć metody FromRGB()$PSStyle, aby stworzyć sekwencje ucieczki ANSI dla kolorów, które chcesz.

Aby uzyskać więcej informacji na temat $PSStyle, zobacz about_ANSI_Terminals.

Aby uzyskać więcej informacji na temat sekwencji ucieczki ANSI, zobacz artykuł kod ucieczki ANSI w Wikipedii.

Ustawianie motywu kolorów w profilu

Aby mieć ustawienia kolorów, które mają być używane w każdej sesji programu PowerShell, należy dodać ustawienia konfiguracji do skryptu profilu programu PowerShell. Aby zobaczyć przykład, zapoznaj się z Dostosowywaniem środowiska powłoki

Dodaj zmienną $ISETheme i następujące Set-PSReadLineOption polecenie do profilu.

Set-PSReadLineOption -Colors $ISETheme

Począwszy od programu PowerShell 7.2, program PowerShell dodaje kolorowe dane wyjściowe do domyślnego środowiska konsoli. Używane kolory są definiowane w zmiennej $PSStyle i są przeznaczone dla ciemnego tła. Poniższe ustawienia działają lepiej w przypadku terminalu z jasnym tłem.

$PSStyle.Formatting.FormatAccent       = "`e[32m"
$PSStyle.Formatting.TableHeader        = "`e[32m"
$PSStyle.Formatting.ErrorAccent        = "`e[36m"
$PSStyle.Formatting.Error              = "`e[31m"
$PSStyle.Formatting.Warning            = "`e[33m"
$PSStyle.Formatting.Verbose            = "`e[33m"
$PSStyle.Formatting.Debug              = "`e[33m"
$PSStyle.Progress.Style                = "`e[33m"
$PSStyle.FileInfo.Directory            = $PSStyle.Background.FromRgb(0x2f6aff) +
                                         $PSStyle.Foreground.BrightWhite
$PSStyle.FileInfo.SymbolicLink         = "`e[36m"
$PSStyle.FileInfo.Executable           = "`e[95m"
$PSStyle.FileInfo.Extension['.ps1']    = "`e[36m"
$PSStyle.FileInfo.Extension['.ps1xml'] = "`e[36m"
$PSStyle.FileInfo.Extension['.psd1']   = "`e[36m"
$PSStyle.FileInfo.Extension['.psm1']   = "`e[36m"

Wybieranie kolorów dla ułatwień dostępu

Motyw kolorów ISE może nie działać dla użytkowników ze ślepotą barw lub innymi dolegliwościami, które ograniczają ich zdolność do rozróżniania kolorów.

Konsorcjum World Wide Web Consortium (W3C) zawiera zalecenia dotyczące używania kolorów w celu ułatwienia dostępu. Wytyczne dotyczące ułatwień dostępu do zawartości internetowej (WCAG) 2.1 zaleca, aby "wizualna prezentacja tekstu i obrazów tekstu miała współczynnik kontrastu wynoszący co najmniej 4,5:1". Aby uzyskać więcej informacji, zobacz Kryterium sukcesu 1.4.3 Kontrast (minimum).

Witryna internetowa Współczynnik kontrastu udostępnia narzędzie umożliwiające wybranie kolorów pierwszego planu i tła oraz pomiar kontrastu. Możesz użyć tego narzędzia, aby znaleźć kombinacje kolorów, które działają najlepiej dla Ciebie.