linux “%{\033[0m%}”(代码零)是否将字体颜色重置为“tput setaf”或Xterm默认颜色?

0qx6xfy6  于 2023-03-29  发布在  Linux
关注(0)|答案(1)|浏览(115)

我知道你可以使用转义序列%{\033[0m%}(代码零)将提示符的颜色改回“默认”颜色(通常在提示符之后)。
但是,用于此的“默认值”是什么?
1.终端程序本身的默认颜色?
1.通过tput setaf $COLOR设置的默认颜色,假设您使用它来设置不同于终端默认颜色的字体颜色?
1.其他?

aurhwmvo

aurhwmvo1#

它依赖于终端,但就现有实践而言,它必须是前者:
1.终端(程序)的默认颜色。
另一个建议的选择是不正确的,因为tput setaf没有设置“默认颜色”,而是设置“当前颜色”。tput setaf的任何选择是否对应于终端的默认颜色(最好)是特定于终端的,因为没有相关的标准。
ECMA 48给出了 * SGR 0 *(这是问题中提到的)和 * SGR 30-3740-47 *(通常用于tput使用的终端描述的setaf/setab选项)的简洁(一行)描述。
还有另一个可能的选择,即tput op(选择原始的 color pair),在几个终端描述中使用它来发送 * SGR 39 * 和 * 49 *。同样,这是特定于终端的,它与 * SGR 0 * 的关系没有被任何标准所涵盖。这些恰好在xterm和Linux控制台中使用相同的“默认颜色”,但是(阅读ECMA-48)该标准没有给予关于“默认颜色”和“视频属性”的缺失的细节水平。
进一步阅读:

相关问题