返回

终端上的颜色构成规则

前端

你一定知道,在终端上显示的彩色文本并不仅仅是显示的字符颜色有差别,而是一个完整的格式构成。我们称之为格式控制符,学习了格式控制符,你就可以充分利用终端功能,展示彩色字符了。

终端颜色格式控制符的构成
终端的颜色控制符是一个以“\e”开头的字符串,字符串中包含了一个“[”符号,紧跟其后的是一个、两个或三个八进制数字,用以文本的颜色和背景色。

格式控制符的组成部分如下:

  • 转义字符:\e
  • 方括号:[]
  • 数字:0-7

其中,转义字符和方括号都是固定的,数字则是用来颜色和背景色的。

颜色和背景色的描述方式如下:

  • 数字 0 表示黑色
  • 数字 1 表示红色
  • 数字 2 表示绿色
  • 数字 3 表示黄色
  • 数字 4 表示蓝色
  • 数字 5 表示品红色
  • 数字 6 表示青色
  • 数字 7 表示白色
  • 数字 8 表示亮黑色
  • 数字 9 表示亮红色
  • 数字 10 表示亮绿色
  • 数字 11 表示亮黄色
  • 数字 12 表示亮蓝色
  • 数字 13 表示亮品红色
  • 数字 14 表示亮青色
  • 数字 15 表示亮白色

例如,要将文本的颜色设置为红色,背景色设置为蓝色,可以使用以下格式控制符:

\e[31;44m

要将文本的颜色设置为亮红色,背景色设置为亮蓝色,可以使用以下格式控制符:

\e[91;104m

要将文本的颜色重置为默认值,背景色重置为黑色,可以使用以下格式控制符:

\e[0m

这里有一些简单的示例,供您参考:

  • 将文本的颜色设置为红色:
\e[31mText\e[0m
  • 将文本的颜色设置为绿色,背景色设置为黄色:
\e[32;43mText\e[0m
  • 将文本的颜色设置为亮蓝色,背景色设置为亮红色:
\e[94;101mText\e[0m

值得注意的是,终端上彩色字符的显示效果取决于终端的实现方式。

在 Linux 和 macOS 系统中,可以使用 ANSI 转义序列来控制终端的颜色。在 Windows 系统中,可以使用 Windows 控制台 API 来控制终端的颜色。

如果你正在使用 Windows 系统,并且想要在终端上显示彩色文本,你可以使用以下代码:

HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(hConsole, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);

其中,FOREGROUND_RED、FOREGROUND_GREEN 和 FOREGROUND_BLUE 是 Windows 控制台 API 中定义的颜色常量。

你可以使用这些常量来控制文本的颜色。

以上就是终端彩色字符的控制格式构成,希望对您有所帮助。