Condividi tramite


Configurazione di un tema colorato chiaro

I colori predefiniti per PowerShell e PSReadLine sono selezionati per un terminale di sfondo scuro. Tuttavia, alcuni utenti possono scegliere di usare uno sfondo chiaro con testo scuro. Poiché la maggior parte dei colori predefiniti non imposta lo sfondo, l'uso dei colori di primo piano chiaro su uno sfondo chiaro produce testo illeggibile.

PSReadLine consente di definire colori per 18 elementi di sintassi diversi. È possibile visualizzare le impostazioni correnti usando il Get-PSReadLineOption 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"

Le impostazioni dei colori vengono archiviate come stringhe contenenti sequenze di escape ANSI che modificano il colore nel terminale. Usando il Set-PSReadLineOption cmdlet è possibile modificare i colori in valori che funzionano meglio per uno sfondo di colore chiaro.

Definizione dei colori per un tema chiaro

PowerShell ISE può essere configurato per l'uso di un tema chiaro sia per l'editor che per i riquadri della console. È anche possibile visualizzare e modificare i colori usati dall'ISE per vari tipi di sintassi e output. È possibile usare queste scelte di colore per definire un tema simile per PSReadLine.

La tabella hash seguente definisce i colori per PSReadLine che simulano i colori in 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)
}

Annotazioni

In PowerShell 7.2 e versioni successive, puoi usare il metodo FromRGB() di $PSStyle per creare le sequenze di escape ANSI per i colori desiderati.

Per altre informazioni su $PSStyle, vedere about_ANSI_Terminals.

Per altre informazioni sulle sequenze di escape ANSI, vedere l'articolo codice di escape ANSI in Wikipedia.

Impostazione del tema colore nel profilo

Per avere le impostazioni dei colori desiderate in ogni sessione di PowerShell, è necessario aggiungere le impostazioni di configurazione allo script del profilo di PowerShell. Per un esempio, vedere Personalizzazione dell'ambiente della shell

Aggiungere la $ISETheme variabile e il comando seguente Set-PSReadLineOption al profilo.

Set-PSReadLineOption -Colors $ISETheme

A partire da PowerShell 7.2, PowerShell aggiunge l'output colorato all'esperienza della console predefinita. I colori usati sono definiti nella $PSStyle variabile e sono progettati per uno sfondo scuro. Le impostazioni seguenti funzionano meglio per un terminale di sfondo chiaro.

$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"

Scelta dei colori per l'accessibilità

Il tema dei colori ISE potrebbe non funzionare per gli utenti con cecità di colore o altre condizioni che limitano la loro capacità di visualizzare i colori.

World Wide Web Consortium (W3C) offre raccomandazioni per l'uso dei colori per l'accessibilità. Le linee guida per l'accessibilità dei contenuti Web (WCAG) 2.1 consigliano che "la presentazione visiva di testo e immagini di testo abbia un rapporto di contrasto di almeno 4,5:1". Per altre informazioni, vedere Success Criteria 1.4.3 Contrast (Minimum).

Il sito Web Rapporto contrasto offre uno strumento che consente di selezionare i colori di primo piano e di sfondo e misurare il contrasto. È possibile usare questo strumento per trovare combinazioni di colori che funzionano meglio per voi.