ANSI颜色转义序列的列表

在大多数终端上(当然除了Windows的cmd.exe),可以使用33 ANSI转义序列对输出进行着色。

现在我正在查找所有支持的颜色和选项(如亮和闪烁)的列表。

由于支持它们的终端之间可能存在一些差异:我主要关注由xterm兼容终端支持的那些序列。


您正在查找的ANSI转义序列是Select Graphic Rendition子集。 所有这些都有它的形式

33[XXXm

其中XXX是一系列以分号分隔的参数。

要说,在C中你可以写下以下文字:红色,粗体和下划线(我们将讨论下面的许多其他选项):

printf("33[31;1;4mHello33[0m");

在C ++中,你会使用

std::cout<<"33[31;1;4mHello33[0m";

在Python3中,你会使用

print("33[31;1;4mHello33[0m")

并在Bash中使用

echo -e "33[31;1;4mHello33[0m"

第一部分使文本变为红色( 31 ),粗体( 1 ),下划线( 4 ),最后部分清除所有这些( 0 )。

如下表所述,可以设置大量文本属性,例如粗体,字体,下划线和&c。 (是不是很愚蠢,StackOverflow不允许你在答案中放置正确的表格?)

字体效果

╔══════════╦════════════════════════════════╦═════════════════════════════════════════════════════════════════════════╗
║  Code    ║             Effect             ║                                   Note                                  ║
╠══════════╬════════════════════════════════╬═════════════════════════════════════════════════════════════════════════╣
║ 0        ║  Reset / Normal                ║  all attributes off                                                     ║
║ 1        ║  Bold or increased intensity   ║                                                                         ║
║ 2        ║  Faint (decreased intensity)   ║  Not widely supported.                                                  ║
║ 3        ║  Italic                        ║  Not widely supported. Sometimes treated as inverse.                    ║
║ 4        ║  Underline                     ║                                                                         ║
║ 5        ║  Slow Blink                    ║  less than 150 per minute                                               ║
║ 6        ║  Rapid Blink                   ║  MS-DOS ANSI.SYS; 150+ per minute; not widely supported                 ║
║ 7        ║  [[reverse video]]             ║  swap foreground and background colors                                  ║
║ 8        ║  Conceal                       ║  Not widely supported.                                                  ║
║ 9        ║  Crossed-out                   ║  Characters legible, but marked for deletion.  Not widely supported.    ║
║ 10       ║  Primary(default) font         ║                                                                         ║
║ 11–19    ║  Alternate font                ║  Select alternate font `n-10`                                           ║
║ 20       ║  Fraktur                       ║  hardly ever supported                                                  ║
║ 21       ║  Bold off or Double Underline  ║  Bold off not widely supported; double underline hardly ever supported. ║
║ 22       ║  Normal color or intensity     ║  Neither bold nor faint                                                 ║
║ 23       ║  Not italic, not Fraktur       ║                                                                         ║
║ 24       ║  Underline off                 ║  Not singly or doubly underlined                                        ║
║ 25       ║  Blink off                     ║                                                                         ║
║ 27       ║  Inverse off                   ║                                                                         ║
║ 28       ║  Reveal                        ║  conceal off                                                            ║
║ 29       ║  Not crossed out               ║                                                                         ║
║ 30–37    ║  Set foreground color          ║  See color table below                                                  ║
║ 38       ║  Set foreground color          ║  Next arguments are `5;n` or `2;r;g;b`, see below                       ║
║ 39       ║  Default foreground color      ║  implementation defined (according to standard)                         ║
║ 40–47    ║  Set background color          ║  See color table below                                                  ║
║ 48       ║  Set background color          ║  Next arguments are `5;n` or `2;r;g;b`, see below                       ║
║ 49       ║  Default background color      ║  implementation defined (according to standard)                         ║
║ 51       ║  Framed                        ║                                                                         ║
║ 52       ║  Encircled                     ║                                                                         ║
║ 53       ║  Overlined                     ║                                                                         ║
║ 54       ║  Not framed or encircled       ║                                                                         ║
║ 55       ║  Not overlined                 ║                                                                         ║
║ 60       ║  ideogram underline            ║  hardly ever supported                                                  ║
║ 61       ║  ideogram double underline     ║  hardly ever supported                                                  ║
║ 62       ║  ideogram overline             ║  hardly ever supported                                                  ║
║ 63       ║  ideogram double overline      ║  hardly ever supported                                                  ║
║ 64       ║  ideogram stress marking       ║  hardly ever supported                                                  ║
║ 65       ║  ideogram attributes off       ║  reset the effects of all of 60-64                                      ║
║ 90–97    ║  Set bright foreground color   ║  aixterm (not in standard)                                              ║
║ 100–107  ║  Set bright background color   ║  aixterm (not in standard)                                              ║
╚══════════╩════════════════════════════════╩═════════════════════════════════════════════════════════════════════════╝

2位颜色

你已经拥有了!

4位颜色

实现终端颜色的标准始于有限的(4位)选项。 下表列出了各种终端仿真器使用的背景和前景色的RGB值:

由各种终端仿真器实现的ANSI颜色表

使用上面的内容,你可以在绿色背景上创建红色文本(但为什么?)使用:

33[31;42m

11种颜色(插曲)

Brent Berlin和Paul Kay在其着作“基本色彩术语:它们的普遍性和演变”一书中,使用从一系列语言系列的20种不同语言收集的数据,确定了11种可能的基本色彩类别:白色,黑色,红色,绿色,黄色,蓝色,棕色,紫色,粉红色,橙色和灰色。

柏林和凯发现,在颜色种类最多不超过11​​种的语言中,颜色遵循特定的演变模式。 这种模式如下:

  • 所有语言都包含黑色(冷色)和白色(亮色)的术语。
  • 如果一种语言包含三个术语,那么它包含一个红色术语。
  • 如果一种语言包含四个术语,那么它包含绿色或黄色(但不是两者)的术语。
  • 如果一种语言包含五个术语,则它包含绿色和黄色的术语。
  • 如果一种语言包含六个术语,那么它包含一个蓝色术语。
  • 如果一种语言包含七个术语,那么它包含一个棕色术语。
  • 如果一种语言包含八个或更多术语,则它包含紫色,粉红色,橙色或灰色的术语。
  • 这可能是为什么贝奥武夫的故事只包含黑色,白色和红色。 这也可能是圣经为什么不包含蓝色的原因。 荷马的奥德赛包含黑色近200次,白色约100次。 红色出现15次,而黄色和绿色只出现10次。 (更多信息在这里)

    语言之间的差异也很有趣:请注意英语与中国人使用的不同颜色词的丰富程度。 然而,深入挖掘这些语言表明,每种语言都以不同的方式使用颜色。 (更多信息)

    中文和英文颜色名称。图片改编自“muyueh.com”

    一般来说,人类语言中颜色​​的命名,使用和分组是非常有趣的。 现在,回到节目。

    8位(256)颜色

    先进的技术,256个预选颜色的表格变得可用,如下所示。

    用于ANSI转义序列的256位色彩模式

    使用以上这些,你可以制作粉红色的文字,如下所示:

    33[38;5;206m     #That is, 33[38;5;<FG COLOR>m
    

    并使用早晨蓝色背景

    33[48;5;57m      #That is, 33[48;5;<BG COLOR>m
    

    当然,你可以结合这些:

    33[38;5;206;48;5;57m
    

    8位颜色排列如下:

    0x00-0x07:  standard colors (same as the 4-bit colours)
    0x08-0x0F:  high intensity colors
    0x10-0xE7:  6 × 6 × 6 cube (216 colors): 16 + 36 × r + 6 × g + b (0 ≤ r, g, b ≤ 5)
    0xE8-0xFF:  grayscale from black to white in 24 steps
    

    所有颜色

    现在我们生活在未来,完整的RGB光谱可以使用:

    33[38;2;<r>;<g>;<b>m     #Select RGB foreground color
    33[48;2;<r>;<g>;<b>m     #Select RGB background color
    

    所以你可以在浅褐色的背景上使用粉红色的文字

    33[38;2;255;82;197;48;2;155;106;0mHello
    

    此处列出了对“真彩色”终端的支持。

    以上大部分内容均来自维基百科页面“ANSI转义代码”。


    本页有一个很好的总结:

    ANSI Escape序列


    怎么样:

    ECMA-48 - 编码字符集的控制函数,第5版(1991年6月) - 一个定义颜色控制代码的标准,显然也受xterm支持。

    SGR 38和48最初是由ECMA-48保留的,但几年后通过联合国际电联,IEC和ISO标准进行了充实,该标准分为几个部分,其中包括许多其他内容,记录了SGR用于直接颜色和索引颜色的38/48控制序列:

  • 信息技术 - 开放文档体系结构(ODA)和交换格式:文档结构。 T.412。 国际电信联盟。
  • 信息技术 - 开放文档体系结构(ODA)和交换格式:字符内容体系结构。 T.416。 国际电信联盟。
  • 信息技术 - 开放文档体系结构(ODA)和交换格式:字符内容体系结构。 ISO / IEC 8613-6:1994。 国际标准化组织。
  • 在ANSI Wiki转义代码的维基百科页面上,此表中有一列xterm

    链接地址: http://www.djcxy.com/p/56099.html

    上一篇: List of ANSI color escape sequences

    下一篇: How to validate the group checkbox in html5?