如何在Mac终端中更改文本颜色和背景?

4
我正在编写一个需要在不同颜色中写入文本的程序。 我有逃逸代码RED "\e[31m"。但是,如果我在红色背景上显示红色,那么这将不起作用。因此,我还想更改背景颜色。 我尝试使用"\e [31m\e [94m"或\e[4Xm来进行不同背景上的文字,然而这并没有起作用。有什么想法可以让红色文字显示在白色背景上吗?
这是std :: cout << "COLORNAME" ....的格式。
谢谢!

1
http://en.wikipedia.org/wiki/ANSI_escape_code - Marc B
我知道30+i和40+i是不同的,但是在打印时我无法将它们链接在一起吗? - user3340037
1个回答

4
多个 SGR 选项可以链接在一起,实际上比您之前尝试的更紧凑。SGR 语法的一般形式为:
`\e[` options `m`
其中,`options` 可以由一个或多个数字组成,用分号分隔,可以包括许多内容,尤其是:
- 1:粗体 - 30-37:设置前景色0-7(黑色、红色、绿色、黄色、蓝色、洋红色、青色、白色) - 40-47:设置背景色0-7(同上) - 90-97:设置前景色8-15(0-7的亮色版本;"亮黑色"是深灰色) - 100-107:设置背景色8-15(同上)
在您的情况下,白色背景上的红色文本将是 `\e[31;47m`。
(*:或者根本没有数字,这种情况下它会重置所有图形选项。)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接