我正在使用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提供的额外颜色?
答案 0 :(得分:8)
那些是ANSI terminal escape codes。具体来说,他们选择了图形再现" (SGR)转义码,包括:
\x1B
(ESC)和[
组成,m
,结束代码并指示这是SGR代码。有许多可能的数字命令(以及除SGR之外的许多其他转义码),但最相关的是:
因此,例如,可以使用代码\x1B[35;1;42m
在绿色背景(eww!)上选择亮紫色文本。