我的终端有256种颜色可供选择(此处测试脚本),但是当我使用ncurses(通过Ruby-ncurses)时它会停止工作。打印在该页面上给出的转义序列工作正常,但是当我初始化ncurses'puts'停止工作时,我无法使用我发现的各种ncurses颜色更改/字符串输出函数输出颜色。是什么给了什么?

有帮助吗?

解决方案 2

njsf:你部分就在这里,经过修补之后,我终于开始工作了。谢谢你的帮助。故事:XTerm(和rxvt,和Eterm)通过转义序列(我看到的)支持256种颜色但是'tput colors'会说'8'并且ncurses将无法获得它们,因为ncurses运行良好并尝试通过terminfo访问。

为了有类似痛苦的人的利益:

我发现我需要安装ncurses-term(Ubuntu)包来获取/ lib / terminfo / x / xterm-256color和其他256色terminfo文件。然后我将我的TERM设置为xterm-256color并将'* customization:-color'行添加到我的〜/ .Xdefaults,运行'xrdb -merge~ / .Xdefaults'来加载它,从那时起我就有了适当的256色支持新的xterms。

其他提示

我不确定这是不是故事,但请确保您的终端功能确实提供256色描述。

什么是TERM环境变量值?尝试将其设置为xterm-256color并重新运行它。 然后,ncurses应该获得正确的颜色转义序列。

您还可以使用我们在SXEmacs开发中使用的程序测试终端功能和终端颜色输出:

http://www.triatlantico.org/tmp/tty-colors.c

使用gcc -o tty-colors编译tty-colors.c -lncurses

编辑: 请注意,仅仅因为在网络上找到的脚本输出256种颜色,而不是“全部设置”。 Curses程序依赖terminfo和termcap以及TERM环境变量来找出如何与终端进行交互。 因此,为了使curses应用程序能够使用256种颜色,应该将TERM变量设置为支持256种颜色的现有终端名称。 上面的C程序将向您显示 ncurses对您的终端的看法,而不仅仅像大多数脚本一样输出xterm序列[甚至是X.org中的那个]

设置

ENV ['TERM'] + =' - 2566'如果ENV ['TERM'] =='xterm'#激活256种颜色

适用于ubuntu 10.04 +

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top