gpt4 book ai didi

python - urwid 中的斜体文本

转载 作者:太空宇宙 更新时间:2023-11-04 05:58:53 25 4
gpt4 key购买 nike

我正在使用 urwid 设计一个 curses ui。我可以使用显示属性将文本显示为粗体、下划线或突出显示。是否可以使用斜体?

最佳答案

简答

理论上,是的。

在实践中:还没有。

长答案

基本上,curses 使用来自 ECMA-48 的所谓“ANSI 转义序列”来进行光标移动、颜色或任何非纯线性文本输出。 (它确实比这更复杂,参见 terminfo,但这就是它最终归结为的内容。)

颜色、粗体文本等被指定为 SGR(“选择图形再现”)命令的一部分:CSI $n m(CSI 是“控制” Sequence Introducer'^[[,即ESC+[)。在一系列令人费解的离奇事物中(甚至还支持 blackletter!在控制台上!), 有一个用于斜体文本的控制序列:^ [[3m 启用,^[[23m 禁用。

维基百科有一个 list of SGR commands .然而,大多数更……深奥的序列“几乎从未得到支持”。粗体和突出显示几乎得到普遍支持,下划线很常见。虽然斜体似乎越来越受欢迎,但许多(?)终端仿真器仍然不支持它——如果您的程序需要在异构环境中运行,这可能是一个问题。最好不要押注 blackletter 支持很快就会到来。

目前,xterm、urxvt 和 st 支持它; PuTTy 没有。

如果你的终端支持,你可以自己试试。您必须使用 Ctrl+V+Esc 来获得“真正的”转义字符,而不是 ^[,它只是一种符号速记。

print 'plain text ^[[3m italic text ^[[0m plain text'

ncurses already seems to support italic text. 然而,Urwid 还没有(从 1.3.0 版开始)。我查看了源代码(有趣的部分是 display_common.pycurses_display.pyraw_display.py)。我想打补丁以支持斜体文本应该不会太难,但作为一个 Urwid 初学者,我现在还遥不可及。

关于python - urwid 中的斜体文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26207552/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com