终端输出特殊代码
创建:2023-10-27 17:59
更新:2025-04-19 18:20

wiki: ANSI转义序列

格式

\033[显示方式;前景色;背景色m字符串\033[0m

显示方式

代码 效果
0 默认值
1 高亮
22 非粗体
4 下划线
24 非下划线
5 闪烁
25 非闪烁
7 反显
27 非反显

前景色

代码 效果
\u001b[30m 黑色
\u001b[31m 红色
\u001b[32m 绿色
\u001b[33m 黄色
\u001b[34m 蓝色
\u001b[35m 洋红色
\u001b[36m 青色
\u001b[37m 白色

背景色

代码 效果
\u001b[40m 黑色背景
\u001b[41m 红色背景
\u001b[42m 绿色背景
\u001b[43m 黄色背景
\u001b[44m 蓝色背景
\u001b[45m 洋红色背景
\u001b[46m 青色背景
\u001b[47m 白色背景

最后,除了16色外,某些控制台支持输出256色。指令的形式: 前景: \u001b[38;5;${color}m 背景: \u001b[48;5;${color}m

光标移动

代码 效果
\u001b[{n}A 光标向上移动n格
\u001b[{n}B 光标向下移动n格
\u001b[{n}C 光标向右移动n格
\u001b[{n}D 光标向左移动n格
\u001b[{n}E 光标按行向下移动n行并且将光标移至行首
\u001b[{n}F 光标按行向上移动n行并且将光标移至行首
\u001b[{n}G 将光标移至第n列(行数与当前所在行保持一致)
\u001b[{n};{m}H 将光标移至第n行m列,坐标原点从屏幕左上角开始
\u001b[{s} 保存光标当前所在位置
\u001b[{u} 读取光标上一次保存的位置

nodejs 示例

// 注意需要分开分两次输出,windows下好像优点问题
process.stdout.write(`\u001b[1F`);
process.stdout.write(`\u001b[0K`);