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.

Począwszy od programu PowerShell 7.2, program PowerShell dodaje kolorowe dane wyjściowe do domyślnego środowiska konsoli. Ta $PSStyle funkcja nie jest natywnie dostępna w programie Windows PowerShell. Jednak przy użyciu modułu PSStyle z galerii programu PowerShell można ustawić wartości kolorów przy użyciu tych samych technik opisanych w tym artykule.

Używane kolory są definiowane w zmiennej $PSStyle i są przeznaczone dla ciemnego tła. Możesz zmienić te kolory, aby lepiej pasowały do terminala z jasnym tłem.

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

Możesz użyć FromRGB() metody , aby utworzyć sekwencje ucieczki ANSI dla żądanych kolorów. 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

Poniższe ustawienia działają lepiej w przypadku terminalu z jasnym tłem.

$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

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

Motyw kolorów ISE może nie działać dla użytkowników ze ślepotą kolorów lub innymi warunkami, 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.