【问题标题】:Getting 256 colors out of ruby-ncurses从 ruby​​-ncurses 中获得 256 种颜色
【发布时间】:2010-09-15 08:23:27
【问题描述】:

我的终端 (test scripts here) 有 256 种颜色工作得很好,但是当我使用 ncurses(通过 Ruby-ncurses)时它停止工作。打印该页面上给出的转义序列可以正常工作,但是当我初始化 ncurses 'puts' 时停止工作,并且我无法使用我发现的任何各种 ncurses 颜色更改/字符串输出函数输出颜色。什么给了?

【问题讨论】:

    标签: ruby ncurses terminal 256color


    【解决方案1】:

    我不确定这是否就是全部内容,但请确保您的终端功能确实提供了 256 色描述。

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

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

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

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

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

    【讨论】:

      【解决方案2】:

      njsf:你部分地在这里,经过更多的修补后,我最终让它工作了。谢谢你的帮助。故事:XTerm(以及 rxvt 和 Eterm)通过转义序列(我所看到的)支持 256 种颜色,但 'tput colours' 会说 '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。

      【讨论】:

      • 是的,来这里是为了建议正确设置您的终端。对于任何路过的读者来说,这也是一个花絮。例如 Mac OS X Terminal.app 仅支持 16 种颜色,因此您要么使用 iTerm,要么在 X11 上使用 XTerm,否则就忘了它!
      【解决方案3】:

      设置

      ENV['TERM'] += '-256color' if ENV['TERM'] == 'xterm' # 激活 256 色

      适用于 ubuntu 10.04 +

      【讨论】:

        猜你喜欢
        • 2011-09-18
        • 2014-06-21
        • 2022-11-01
        • 1970-01-01
        • 1970-01-01
        • 2012-08-16
        • 2010-10-03
        • 2014-02-27
        • 2016-08-07
        相关资源
        最近更新 更多