【问题标题】:How to use ANSI escape codes inside mvwprintw in ncurses?如何在 ncurses 的 mvwprintw 中使用 ANSI 转义码?
【发布时间】:2015-02-12 08:48:45
【问题描述】:

有没有办法在 mvwprintw 中使用 ANSI 转义码?

mvwprintw(window, 0, 0,"%c[%dmCOLORED_TEXT!\n", 0x1B, 32);//doesn't work

即使:

printf("%c[%dmCOLORED_TEXT\n", 0x1B, 32); //works

这适用于不方便使用wattron/wattroff 的情况;例如,当从输出此类转义码的进程的标准输出重定向输出时。

【问题讨论】:

标签: ncurses ansi-escape


【解决方案1】:

没有。完成这项工作的唯一方法是自己解析字符串,将转义码转换回适当的 curses 命令,与您的输出一起发出。

您应该意识到,这些代码虽然被广泛实施,但并不通用。 curses 的主要目的之一是将其标准命令转换为一系列特定于终端的控制代码。因此,传递可能与当前终端类型对应或不对应的代码并不真正适合 curses 模型。更根本的是,代码会以 curses 无法跟踪的方式更改终端状态,因此其窗口结构的内容不再与屏幕上的内容匹配。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-07-14
  • 1970-01-01
  • 2014-08-25
  • 1970-01-01
  • 2011-05-05
  • 1970-01-01
  • 2021-06-28
相关资源
最近更新 更多