【发布时间】:2020-11-11 17:40:16
【问题描述】:
我正在实现一个 Python 控制台应用程序,它使用 ANSI 转义码为各种事物着色。我在 Pop OS(一个 Ubuntu 衍生产品)上进行开发,并且着色按设计工作。
我刚刚在 Centos 机器上试用了该应用程序,虽然颜色正确显示,但彩色文本周围还有其他文本(包含数字的小框,垂直堆叠),显然对应于转义码。
转义码都在这一段 Python 中指定:
style = ('\033[1m\033[3m' if bold and italic else
'\033[1m' if bold else
'\033[3m' if italic else
'\033[0m')
return f'\001{style}\002\001\033[38;5;{color.code}m\002{s}\001\033[0m\002'
(我正在做的项目是https://github.com/geophile/marcel,以上代码来自marcel.util.colorize()。)
真正奇怪的是,在某些情况下,多余的字符不存在,而在其他情况下却存在。另外,如果我从我的 pop os 机器 ssh 到我的 centos 机器,文本在所有情况下都会正确着色。
是什么解释了这种行为差异——.bashrc 中的某些东西?关于 X 配置?
【问题讨论】:
标签: console-application ansi-escape