Node.js 这是什么\u001b[9…选择控制台上显示的颜色文本的语法,以及如何添加更多颜色?

Node.js 这是什么\u001b[9…选择控制台上显示的颜色文本的语法,以及如何添加更多颜色?,node.js,colors,console,windows-console,Node.js,Colors,Console,Windows Console,我一直在胡闹,想得到比有限的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'; 我知道windows控制台允许的颜色不止这六种,正如color/?所示 0=黑色8=灰色 1=蓝色

我一直在胡闹,想得到比有限的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';
我知道windows控制台允许的颜色不止这六种,正如
color/?
所示

0=黑色8=灰色
1=蓝色9=浅蓝色
2=绿色A=浅绿色
3=浅绿色B=浅绿色
4=红色C=浅红色
5=紫色D=浅紫色
6=黄色E=浅黄色
7=白色F=亮白色
如何理解此语法并添加windows必须提供的额外颜色?

这些是。具体来说,它们是“选择图形格式副本”(SGR)转义码,由以下部分组成:

  • “命令序列导入器”,由字符
    \x1B
    (ESC)和
    [
    组成
  • 一个或多个数字命令,用分号分隔,以及
  • 字母
    m
    ,以代码结尾,表示这是SGR代码
有许多可能的数字命令(以及除SGR之外的许多其他转义码),但最相关的是:

  • 30–37:将文本颜色设置为0到7的颜色之一
  • 40–47:将背景色设置为0到7种颜色之一
  • 39:将文本颜色重置为默认值
  • 49:将背景色重置为默认值
  • 1:使文本加粗/明亮(这是访问明亮颜色变体的标准方式)
  • 22:关闭粗体/明亮效果,然后
  • 0:将所有文本属性(颜色、背景、亮度等)重置为默认值
因此,例如,可以使用代码
\x1B[35;1;42m
选择绿色背景上的亮紫色文本(eww!)

'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'],