作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我知道您可以使用转义序列 %{\033[0m%}
(代码零)将提示的颜色改回“默认”颜色(通常在提示之后) .
但是用于此的“默认值”是什么?
tput setaf $COLOR
设置默认颜色,假设您使用它来设置不同于终端默认颜色的字体颜色?最佳答案
它是依赖于终端的,但就现有实践而言,它必须是前者:
另一个建议的选择是不正确的,因为 tput setaf
没有设置“默认颜色”,而是设置“当前颜色”。 tput setaf
的任何选择是否对应于终端的默认颜色(最多)是特定于终端的,因为没有任何相关标准。
ECMA 48 对 SGR 0
(问题中提到的内容)和 SGR 30-37 进行了简洁(一行)描述
、40-47
(通常用于 tput 将使用的终端描述的 setaf/setab 选择)。
还有另一种可能的选择,即 tput op
(选择原始的颜色对),它在多个终端描述中用于发送 SGR 39
和 49
。同样,这是特定于终端的,它与 SGR 0
的关系未被任何标准涵盖。这些恰好对 xterm 和 Linux 控制台使用相同的“默认颜色”,但是(阅读 ECMA-48)该标准没有给出关于“默认颜色”和缺少“视频属性”的详细信息。
进一步阅读:
关于linux - "%{\033[0m%}"(代码零)是否将字体颜色重置为 "tput setaf"或 Xterm 默认颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48466956/
我知道您可以使用转义序列 %{\033[0m%}(代码零)将提示的颜色改回“默认”颜色(通常在提示之后) . 但是用于此的“默认值”是什么? 终端程序本身的默认颜色? 通过 tput setaf $C
我是一名优秀的程序员,十分优秀!