我在搞乱 debug和 colors.js获得比有限的 4-6 种颜色更多的颜色,但我一直在弄清楚这种着色语法
args[0] = ' \u001b[9' + c + 'm' + name + ' '
+ '\u001b[3' + c + 'm\u001b[90m'
+ args[0] + '\u001b[3' + c + 'm'
+ ' +' + exports.humanize(ms) + '\u001b[0m';
'blue' : ['\x1B[34m', '\x1B[39m'],
'cyan' : ['\x1B[36m', '\x1B[39m'],
'green' : ['\x1B[32m', '\x1B[39m'],
'magenta' : ['\x1B[35m', '\x1B[39m'],
'red' : ['\x1B[31m', '\x1B[39m'],
'yellow' : ['\x1B[33m', '\x1B[39m'],
我知道 Windows 控制台允许的颜色比这六种更多,如 color/?
所示
0 = Black 8 = Gray
1 = Blue 9 = Light Blue
2 = Green A = Light Green
3 = Aqua B = Light Aqua
4 = Red C = Light Red
5 = Purple D = Light Purple
6 = Yellow E = Light Yellow
7 = White F = Bright White
我如何理解这种语法并添加 Windows 必须提供的额外颜色?
最佳答案
那些是 ANSI terminal escape codes .具体来说,它们是“选择图形再现”(SGR) 转义码,包括:
- “命令序列介绍器”,由字符
\x1B
(ESC) 和[
, - 一个或多个数字命令,以分号分隔,以及
- 字母
m
,结束代码并表明这是一个 SGR 代码。
有许多可能的数字命令(以及除 SGR 之外的许多其他转义码),但最相关的是:
- 30–37:将文本颜色设置为 0 到 7 中的一种颜色,
- 40–47:将背景颜色设置为 0 到 7 中的一种颜色,
- 39:将文本颜色重置为默认值,
- 49:将背景颜色重置为默认值,
- 1:将文本设为粗体/亮色(这是访问亮色变体的标准方式),
- 22:关闭粗体/亮色效果,
- 0:将所有文本属性(颜色、背景、亮度等)重置为其默认值。
因此,例如,可以使用代码 \x1B[35;1;42m
选择绿色背景上的亮紫色文本(哇!)。
关于node.js - 这是什么\u001b[9...选择控制台上显示的颜色文本的语法,以及如何添加更多颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23975735/