【发布时间】:2025-11-24 10:20:06
【问题描述】:
我正在寻找使用 ANSI 或其他标准在终端中创建橙色文本的控制代码,这可能吗?我只看到黄色和红色可用,我不认为你可以为同一个角色混合红色和黄色:)
【问题讨论】:
-
棕黄色或许能胜任,见en.wikipedia.org/wiki/ANSI_escape_code
-
是的,谢谢,但我不知道代码是什么
标签: ansi
我正在寻找使用 ANSI 或其他标准在终端中创建橙色文本的控制代码,这可能吗?我只看到黄色和红色可用,我不认为你可以为同一个角色混合红色和黄色:)
【问题讨论】:
标签: ansi
严格来说,不是:ANSI 从未对任何被称为“橙色”的东西(用于终端的控制序列)进行标准化。一些终端可以做到这一点,但这超出了标准的范围。
xterm(参见XTerm Control Sequences)使用遵循“ANSI”(实际上早就从标准化中退出)ECMA-48 语法的控制序列。
Orange 可以由 RGB 代码组成。例如 X 的 rgb.txt 文件将其定义为
255 165 0 orange
(亮红色加上适度亮绿色)。要在 shell 脚本中得到它,可以使用
#!/bin/sh
printf "\033[48:2:255:165:0m%s\033[m\n" "Hello world"
printf "\033[48;2;255;165;0m%s\033[m\n" "Hello world"
这两行之间的区别在于使用冒号作为参数分隔符(ECMA-48 有一些更喜欢这样的措辞,对于 xterm 中使用的 subparameters,这在早期被忽略了)。为了兼容性(包括与从 xterm 早期实现复制的终端),xterm 尊重两者。
xterm 还支持称为动态颜色 的“非ANSI”方案,它接受颜色名称,但它设置整个屏幕的文本颜色。
最后,xterm 可以指定颜色来代替闪烁、粗体、斜体、反转和下划线(例如参见colorBD 的讨论)。这是通过 X 资源设置完成的(在转义序列的帮助下)。分配给这些资源的颜色可以通过相同的 88/256 颜色扩展来设置。
【讨论】:
orangeBg = "\033[48;2;255;165;0m" 谢谢!
256 调色板更兼容,更易于使用。橘子的数量:
printf "\033[48:5:208m%s\033[m\n" "Hello world" # bright orange
printf "\033[48:5:166m%s\033[m\n" "Hello world" # darker orange
终端下的冒号可能需要是分号。
【讨论】: