我正在编写一个需要输出样式文本的控制台程序。现在我使用固定的ANSI转义码来处理前景色和背景色,粗体和下划线。例如,我可以编写\033[35m
来将前景色更改为紫色。
自己编写代码的好处是我可以链接它们。我可以使用一个命令更改背景颜色和前景色,这样可以节省宝贵的字节:
\033[48;5;200;38;5;100m
我想切换到使用terminfo库让我的程序在其他类型的终端上工作。但是,我无法一次找到更新多种颜色的方法 - 我想设置粗体并为和设置颜色,只有一个\033
且只有一个{{1} }。
标准中列出了以下命令,但不仅这些命令似乎没有做我想要的,我实际上无法找到第一组和第二组视频属性实际上是什么:
有没有办法只使用m
命令获得我想要的东西?提前谢谢。
答案 0 :(得分:1)
否 - terminfo不会这样做:
sgr
,一次最多可以设置9个视频属性。这些都不是颜色。如果您正在使用ncurses,可以使用tic -x
定义您自己的功能,并使用您自己的解释(例如参见 {{3}终端数据库中的)。只要他们的语法与其他terminfo字符串匹配,您就可以使用ncurses user-definable capabilities填写数字(略好于printf
)。