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

标签 node.js colors console windows-console

我在搞乱 debugcolors.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/

相关文章:

mysql - Node js mysql查询循环错误

node.js - io.adapter 是如何工作的?

regex - 我想根据 Powershell 中的正则表达式为管道字符串的高亮部分着色

c# - 控制台输出到文本框

c:绘制控制台的表格布局

node.js - 在 Ubuntu 18.04 上安装 Node 版本 10

node.js - 如何使用socketcluster实现socketchannel

python - 如何在 Python OpenCV 中绘制图像对数色度图

colors - Notepad++ 标签颜色

C#颜色常量R、G、B值