跳至主要內容

CSI控制字符

AkashiNeko原创Note终端

1. 使用方法

在支持彩色文字和背景的终端下,可以使用以下控制字符改变文字的颜色以及背景颜色。

使用方法

\033[n1;n2;...m

以下的代码会输出一个红色的

Hello world

C
#include <stdio.h>

int main() {
    printf("\033[31mHello world\n");
    return 0;
}

2. 控制字符表

是否可用取决于终端,可能只有部分可用。

位置控制
字符说明
\033[X;YH将光标移至第 X 行,第 Y 列的位置
\033[nA光标上移 n 列 屏幕顶端无效
\033[nB光标下移 n 列 屏幕底端无效
\033[nC光标向右 n 行 屏幕右端无效
\033[nD光标向左 n 行 屏幕左端无效
\033[6n报告光标位置
\033[s保存目前的光标位置
\033[u取出保存的光标位置来使用
\033[?25l隐藏光标
\033[?25h显示光标
\033[2J清除屏幕
\033[K清除光标后的本行所有字符
\033[0I恢复正常字体
\033[1I宋体
\033[2I黑体
\033[3I楷体
样式控制
字符意义
\033[0m设为默认样式 (Normal)
\033[1m高亮度显示 (Bright)
\033[4m加下划线 (Underline)
\033[5m闪烁显示 (Flash)
\033[7m反相显示 (Inverse)
\033[8m不可见 (Invisable)
颜色控制
文字背景颜色
\033[30m\033[40m黑色
\033[31m\033[41m红色
\033[32m\033[42m绿色
\033[33m\033[43m黄色
\033[34m\033[44m蓝色
\033[35m\033[45m紫红色
\033[36m\033[46m青蓝色
\033[37m\033[47m白色

组合使用

使用颜色和高亮组合,可使文字高亮显示,如

\033[32;1m亮绿色

Github: AkashiNeko/CSIopen in new window