ANSI 颜色转义序列列表

2023-12-04

在大多数终端上,可以使用以下命令对输出进行着色\033ANSI 转义序列。

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

由于支持它们的终端之间可能存在差异,因此我主要对 xterm 兼容终端支持的序列感兴趣。


您正在寻找的 ANSI 转义序列是“选择图形呈现”子集。所有这些都有以下形式

\033[XXXm

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

比如说,在 C 中将文本设置为红色、粗体和下划线(我们将在下面讨论许多其他选项),您可以这样写:

printf("\033[31;1;4mHello\033[0m");

在 C++ 中你会使用

std::cout<<"\033[31;1;4mHello\033[0m";

在Python3中你会使用

print("\033[31;1;4mHello\033[0m")

在 Bash 中你可以使用

echo -e "\033[31;1;4mHello\033[0m"

其中第一部分使文本变为红色(31), 大胆的 (1)、下划线(4)最后一部分清除了所有这些(0).

如下表所述,您可以设置大量文本属性,例如粗体、字体、下划线等。

字体效果

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 值:

Table of ANSI colours implemented by various terminal emulators

使用上面的内容,您可以使用以下命令在绿色背景上制作红色文本(但为什么?):

\033[31;42m

11 种颜色(插曲)

在他们的书《基本颜色术语:它们的普遍性和演变》中,Brent Berlin 和 Paul Kay 使用从一系列语系的 20 种不同语言收集的数据来识别 11 种可能的基本颜色类别:白色、黑色、红色、绿色、黄色、蓝色、棕色、紫色、粉色、橙色和灰色。

柏林和凯发现,在颜色类别少于最多十一种的语言中,颜色遵循特定的进化模式。该模式如下:

  1. 所有语言都包含黑色(冷色)和白色(亮色)术语。
  2. 如果一种语言包含三个术语,则它包含一个红色术语。
  3. 如果一种语言包含四个术语,则它包含一个表示绿色或黄色的术语(但不能同时包含两者)。
  4. 如果一种语言包含五个术语,则它同时包含绿色和黄色术语。
  5. 如果一种语言包含六个术语,则它包含一个蓝色术语。
  6. 如果一种语言包含七个术语,那么它就包含一个棕色术语。
  7. 如果一种语言包含八个或更多术语,则它包含紫色、粉色、橙色或灰色术语。

这可能就是故事的原因Beowulf仅包含黑色、白色和红色。这也可能是为什么Bible不包含蓝色。荷马的Odyssey含有黑色近200倍,白色约100倍。红色出现了 15 次,而黄色和绿色只出现了 10 次。 (更多信息请点击这里)

语言之间的差异也很有趣:请注意英语和汉语使用大量不同的颜色词。然而,深入研究这些语言表明,每种语言都以不同的方式使用颜色。 (更多信息)

Chinese vs English colour names. Image adapted from "muyueh.com"

一般来说,人类语言中颜色​​的命名、使用和分组是令人着迷的。现在,回到节目。

8 位 (256) 色

技术进步了,可以使用包含 256 种预选颜色的表格,如下所示。

256-bit colour mode for ANSI escape sequences

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

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

并使用以下命令制作清晨的蓝色背景

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

当然,您可以将这些结合起来:

\033[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 光谱:

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

因此,您可以使用以下方法将粉红色文本放在棕色背景上

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

列出了对“真彩色”终端的支持here.

以上大部分内容摘自维基百科页面“ANSI 转义码".

一个提醒自己的方便脚本

由于我经常试图记住什么颜色是什么,所以我有一个方便的脚本,名为:~/bin/ansi_colours:

#!/usr/bin/env python3

for i in range(30, 37 + 1):
    print("\033[%dm%d\t\t\033[%dm%d" % (i, i, i + 60, i + 60))

print("\033[39m\\033[49m                 - Reset color")
print("\\033[2K                          - Clear Line")
print("\\033[<L>;<C>H or \\033[<L>;<C>f  - Put the cursor at line L and column C.")
print("\\033[<N>A                        - Move the cursor up N lines")
print("\\033[<N>B                        - Move the cursor down N lines")
print("\\033[<N>C                        - Move the cursor forward N columns")
print("\\033[<N>D                        - Move the cursor backward N columns\n")
print("\\033[2J                          - Clear the screen, move to (0,0)")
print("\\033[K                           - Erase to end of line")
print("\\033[s                           - Save cursor position")
print("\\033[u                           - Restore cursor position\n")
print("\\033[4m                          - Underline on")
print("\\033[24m                         - Underline off\n")
print("\\033[1m                          - Bold on")
print("\\033[21m                         - Bold off")

这打印

Simple ANSI colours

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ANSI 颜色转义序列列表 的相关文章

  • 如何取消 Postgres 中的错误命令(从终端)?

    我在尝试编写函数时写了一个错误的命令 我在函数中犯了一个错误 并且想在没有完成函数的情况下退出它 并且我想退出它 但是终端的命令提示符不允许我退出 我试过这个 https unix stackexchange com questions 4
  • Eclipse,在哪里更改当前调试行背景?

    任何人都可以向我指出具有以下设置的首选项页面DEBUG当前行背景颜色 我已经将几乎所有颜色更改为深色 但在调试时仍然对这个几乎白色的当前行指示器感到恼火 请注意 编辑模式下的当前行指示是可以的 好吧 现在我自己找到了它 通过主要的逆向工程
  • 如何检测来自 QNX 中 ncurses 的屏幕调整大小事件?

    我无法配置为接收有关使用 ncurses QNX Momentics 更改终端大小的事件 我使用Putyy作为终端 通过COM端口传输数据 我的问题是如何实现使用远程终端时接收屏幕变化事件 FILE fcons fopen dev ser1
  • 与 Write-Host 相比,Write-Output 的使用非常不可靠

    有人指出一个问题 如果我希望命令按顺序操作 建议使用 Write Output 而不是 Write Host 因为 Write Host 不会将输出放在管道上 而其他命令却这样做 这意味着 Write Host 输出可以发生在管道上的其他命
  • 生成一个新终端并写入其标准输出

    我有一个应用程序 它使用 GUI 来完成与用户的大部分界面 不过 我想要一个单独的终端窗口 我可以写入一些错误检查 原始值等 我知道我可以使用以下命令生成一个新终端system 命令 但我不知道是否可以进行交互 在最好的情况下 我希望有一个
  • 在谷歌云上训练神经网络时出现“无法获取路径的文件系统”错误

    我正在使用 Google Cloud 在云上训练神经网络 如下例所示 https cloud google com blog big data 2016 12 how to classify images with tensorflow u
  • 更改特定字符串的颜色

    有谁知道如果将特定单词输入文本区域 我如何更改它的颜色 例如 如果用户输入 你好我的朋友 它会动态地将 你好 更改为绿色 在google上花了很多时间 找不到任何相关的东西 谢谢 textareas 的设计目的不是选择性着色
  • 如何在 Visual Studio Code 中从集成终端引用当前文件

    我想知道是否可以 使用内置变量 直接使用集成终端在 Visual Studio 中打开的当前文件 例如 gt some command current file Where current file would be a built in
  • Alpha 混合红色、蓝色和绿色图像以生成着色为任何 RGB 值的图像?

    基本上 我有一个上下文 我无法以编程方式对图像进行着色 尽管我可以更改它的 alpha 值 通过一些实验 我发现我可以使用特定的 alpha 值对图像的红色 蓝色和绿色版本进行分层 以产生各种颜色 但是我想知道是否可以通过这种方法实现真正
  • 使用 scikit-image 在 HSV 中进行颜色旋转

    目的是将纯红色图像转换为色轮的任何色调 A monochrome image is first converted into a RGB red image ex 然后转化为HSV 通过添加一个角度值来修改色调分量 与车轮颜色相匹配 然后将
  • Vaadin 网格表:如何禁用排序功能并设置一列的颜色

    我在用着GridVaadin 中的表用于数据表示 为此 我试图弄清楚以下两个问题 1 如何禁用每列标题中的排序功能 2 如何设置表格中某一列的颜色Grid table 首先 我找到了Vaadin 文档 https vaadin com do
  • Pygame - 使用 SurfArray 将某种颜色的像素重新着色为另一种颜色(数组切片问题)

    我正在尝试为游戏制作调色板交换功能 并且正在尝试找到一种将某种颜色的像素颜色更改为另一种颜色的方法 我已经能够使用我在教程中找到的这个函数使所有像素具有相同的颜色 def color surface self surface red gre
  • 改变字符串颜色

    好的 这是我上一个问题的延续 但我有代码 private void btnTrans Click object sender EventArgs e var abrvStr inputBx Text foreach var kvp in d
  • Java - toString 到 Color

    我一整天都在努力解决这个问题 基本上我做了一个 for 循环 将条目添加到数组列表中 其中一项是 颜色 变量 我已经用过random nextInt为颜色构造函数的红色 绿色和蓝色部分创建新值 我还设置了一个toString方法 这样我就可
  • 什么是 .un~ 文件或者为什么终端中的 Vim 会创建 .un~ 文件?

    我注意到我有一些以 un 例如我有一个 vividchalk vim un 但我不确定它是从哪里来的 看起来它们是我在终端中使用 Vim 时创建的 这些文件是什么 当我关闭正在编辑的文件时 可以让它们自行删除吗 当你编辑和保存文件时 Vim
  • 使用渐变获取颜色条中特定位置的颜色值

    我生成了一个带有 CSS3 样式的渐变颜色条 fiddle http jsfiddle net eDEWk 现在想要该颜色条中特定位置的颜色值 通过 x 和 y 坐标 据我所知 没有直接的方法可以做到这一点 我看到两个选择 在 JavaSc
  • QML改变图像颜色

    我搜索了如何对图像进行着色 格式为 svg 或 png 我尝试用一 个填充图像的矩形覆盖我的图像 但由于我的图像不是矩形 它会给整个矩形着色 而不仅仅是图像 可以用qml改变图像颜色吗 或者 是否可以使用 QPixmap 更改 qt 使用
  • 如何在 Vim 中创建行号和文本之间的边框

    我希望在行号右侧和文本左侧有一条细边框线 您可以使用不同的颜色来突出显示LineNr 例如 hi LineNr cterm bold ctermbg gray ctermfg black gui bold guibg gray guifg
  • 如何在 R 地图库中绘制正确的颜色

    我正在尝试使用 R 地图库为特定国家绘制特定颜色 我可以填写颜色 但它们与各自的国家 地区没有正确关联 我想知道是否有人能知道为什么 我的数据框是 filld 有 3 列 第一列是国家名称 第二列只是一些数字数据 第三列是颜色 countr
  • 为什么我无法在 Mac OS X Terminal.app 上的 Python 解释器中显示 unicode 字符?

    如果我尝试粘贴 unicode 字符 例如中间的点 在我的 python 解释器中它什么也不做 我在 Mac OS X 上使用 Terminal app 当我只是在 bash 中时 我没有遇到任何问题 但在解释器中 python Pytho

随机推荐

  • 使用 C# 更改文件扩展名

    我有很多文件类型 pdf tiff jpeg bmp ETC 我的问题是如何更改文件扩展名 我试过这个 my file c my documents my images cars a jpg string extension Path Ge
  • PHP 脚本(嵌入式或其他形式)的安全性

    我对嵌入 PHP 代码的 HTML 网页 以 webpage php 形式存在于服务器上的网页 或可能被 HTML 页面引用的 PHP 脚本 即 PHP 脚本实际上不是网页的一部分 以 something php 形式存在于服务器上 并由
  • 使用 crontab 运行 PHP 脚本

    我知道 SO 是针对问题的 但无论我查了多少教程 我都无法得到我的crontab工作 我正在建立一个网站 该网站将依赖于crontab每天晚上重置我的数据库中的特定设置 这是我的crontab file Edit this file to
  • 如何在结构体字段中表示不透明类型

    我正在使用 genawater 箱来实现生成器函数 单线程 多任务 我有这段代码来创建一个新线程 并向其传递一个生成器 但我正在努力 找到如何表示impl Future输入那个gen 返回 use genawaiter rc gen Gen
  • getView 中的自定义 ArrayAdapter setBackground

    我正在开发一个 ListActivity 它将显示一堆数字 权重 我想更改 ListView 中特定行的背景 为此 我创建了 ArrayAdapter 类的自定义实现 并重写了 getView 方法 该适配器接受数字列表 并将数字 20 的
  • Firebase:对大型数据集的查询

    我正在使用 Firebase 来存储用户个人资料 我尝试在每个用户配置文件中放入最少量的数据 遵循有关结构化数据的文档中建议的良好实践 但由于我有超过 220K 个用户配置文件 因此在以 JSON 格式下载所有用户配置文件时 它仍然代表 1
  • Python - 在图中寻找模式

    该图是由以下生成的gnuplot脚本 这estimated csv文件可以在此链接中找到 https drive google com open id 0B2Iv8dfU4fTUaGRWMm9jWnBUbzg GNU Plot set st
  • 检查 Bash 数组是否包含值

    在 Bash 中 测试数组是否包含某个值的最简单方法是什么 这种方法的优点是不需要循环所有元素 至少不需要显式循环 但是由于array to string internal in array c仍然循环遍历数组元素并将它们连接成一个字符串
  • 使用带有管道输入的 gdb 而不创建文件

    我有一个接受管道输入的程序 bash gt echo something program seomthingelse 如何将此输入重定向到 gdb 而不创建新文件 如何将此输入重定向到 gdb 而不创建新文件 您可以创建一个命名管道 不确定
  • Spring中将变量传递给@Qualifier注解

    Spring中是否可以将变量传递给 Qualifier注解 例如 Autowried Qualifier datasource jobParameters datasource number private DataSource ds 我有
  • ios8 的 Parse 推送通知没有声音

    我在向 iOS8 设备推送通知时遇到问题 一切正常 但推送没有响铃 只出现在屏幕上 我通过仪表板发送正常推送 默认情况下启用声音 我在iPhone4 iOS 7 1 2 iPhone5 iOS 7 0 4 上测试 工作正常 但在iOS 8的
  • 将列表元素作为参数传递给 mixin

    以下代码有效 除非我尝试通过 gradient to include background image mixin compositeFill size 100px gradient top 000000 0 FFFFFF 100 isTo
  • Cython pyd 文件不通过 python 导入

    我正在用 python 编写一个程序来模拟粒子的反应 目的是向用户传授粒子反应的知识 由于 python 执行必要的处理速度太慢 我转向 Cython 来提高速度 它很有效 我可以编译我的 pyx文件到一个 pyd可以通过简单的命令从 py
  • 当数据包含换行符时 Text::CSV 解析

    我有一个解析 csv 文件的代码 并且数据还包含换行符 但是 Text CSV 在数据中遇到 n 时会中断 这是解析代码 use Data Dumper use Text CSV my csv Text CSV gt new binary
  • 使用 NSDateFormatter 进行日期格式化的问题

    我有一个日期字符串 我想将其转换为另一种格式 原始日期字符串示例是 2013 06 04 02 19 21 0000 我想将其转换为 6 月 4 日 星期三 NSString date string 2013 06 04 02 19 21
  • Java中如何防止ArrayList中的元素被删除?

    我想要一个ArrayList 并限制元素脱绒 我该怎么做 创建一个包装器List不允许删除的接口 只允许删除所需的方法 class MyArrayList
  • 触发事件 WPF 的计时器

    我这里有一个项目 它默认设置由 MouseEnter 事件发生操作 我的意思是 打开一个窗口 关闭 返回等等 仅通过 MouseEnter 事件发生 我被要求在 3 秒后触发事件 这意味着用户将鼠标放在控件上 仅在 3 秒后 窗口中的所有控
  • 如何在codeigniter中使用ajax上传文件

    我正在尝试使用 ajax 上传文件以及其他参数 但是 文件没有上传 表格代码
  • 如何在C中迭代字符串?

    现在我正在尝试这个 include
  • ANSI 颜色转义序列列表

    在大多数终端上 可以使用以下命令对输出进行着色 033ANSI 转义序列 我正在寻找所有支持的颜色和选项 例如明亮和闪烁 的列表 由于支持它们的终端之间可能存在差异 因此我主要对 xterm 兼容终端支持的序列感兴趣 您正在寻找的 ANSI