我的终端里已经成功地使用了256种颜色(测试脚本在这里),但是当我使用ncurses(通过Ruby-ncurses)时,它就停止工作了。打印该页面上给出的转义序列没有问题,但是当我初始化 ncurses 后,'puts' 无法正常工作,并且我找到的各种 ncurses 颜色更改/字符串输出函数都无法输出颜色。怎么回事?
http://www.triatlantico.org/tmp/tty-colors.c
使用gcc -o tty-colors tty-colors.c -lncurses进行编译。njsf: 你的部分观点是正确的,在进一步尝试后,我最终让它起作用了。感谢您的帮助。故事如下:XTerm(以及rxvt和Eterm)通过转义序列支持256种颜色(我所看到的),但“tput colors”会说“8”,ncurses无法使用它们,因为ncurses正在努力通过terminfo进行访问。
为了使任何遇到类似问题的人受益:
我发现我需要安装ncurses-term(Ubuntu)软件包才能获得/lib/terminfo/x/xterm-256color和其他256色terminfo文件。然后我将我的TERM设置为xterm-256color,并在我的~/.Xdefaults中添加了一行'*customization:-color',运行'xrdb -merge ~/.Xdefaults'来加载它,从那时起,我在新的xterms中拥有适当的256色支持。
设置
如果环境变量中的 TERM 为 xterm,则将其改为 TERM-256color,以启用 256 色。
适用于 Ubuntu 10.04 及以上版本。