某些 git 颜色在 powershell 中不起作用。为什么?

某些 git 颜色在 powershell 中不起作用。为什么?

我将更改文件的 git 控制台颜色设置为黄色。这在 中有效cmd.exe,但在 powershell 中无效。但是,一些颜色可以正常工作,而其他颜色似乎映射到完全不同的颜色。洋红色在 powershell 中呈现为蓝色。这种疯狂的情况是怎么发生的?我该如何让它按预期工作?

外壳颜色对比

答案1


cmd 控制台的颜色通过颜色表条目(24 位,8 位颜色 RGB 反转 0xBBGGRR)定义,
可以在注册表中查看:

> reg query "hkcu\console"

HKEY_CURRENT_USER\console
    ColorTable00    REG_DWORD    0x0
    ColorTable01    REG_DWORD    0x800000
    ColorTable02    REG_DWORD    0x8000
    ColorTable03    REG_DWORD    0x808000
    ColorTable04    REG_DWORD    0x80
    ColorTable05    REG_DWORD    0x800080
    ColorTable06    REG_DWORD    0x8080
    ColorTable07    REG_DWORD    0xc0c0c0
    ColorTable08    REG_DWORD    0x808080
    ColorTable09    REG_DWORD    0xff0000
    ColorTable10    REG_DWORD    0xff00
    ColorTable11    REG_DWORD    0xffff00
    ColorTable12    REG_DWORD    0xff
    ColorTable13    REG_DWORD    0xff00ff
    ColorTable14    REG_DWORD    0xffff
    ColorTable15    REG_DWORD    0xffffff

cmdcolor /?命名偏离电源外壳

Color /?         Dec Hex PowerShell 
0 = Black          0  0  Black  
1 = Blue           1  1  DarkBlue  
2 = Green          2  2  DarkGreen  
3 = Aqua           3  3  DarkCyan  
4 = Red            4  4  DarkRed  
5 = Purple         5  5  DarkMagenta  
6 = Yellow         6  6  DarkYellow  
7 = White          7  7  Gray  
8 = Gray           8  8  DarkGray  
9 = Light Blue     9  9  Blue  
A = Light Green   10  a  Green  
B = Light Aqua    11  b  Cyan  
C = Light Red     12  c  Red  
D = Light Purple  13  d  Magenta  
E = Light Yellow  14  e  Yellow  
F = Bright White  15  f  White

而且 PowerShell 有两个不同的 ColorTable 条目:

ColorTable05    REG_DWORD    0x562401
ColorTable06    REG_DWORD    0xf0edee

后者是 PowerShellDarkYellow与 CMD 的比较,Yellow = 0x8080这解释了图片中的差异。

相关内容