gpt4 book ai didi

ruby 诅咒 : how to get pure white

转载 作者:数据小太阳 更新时间:2023-10-29 08:11:42 26 4
gpt4 key购买 nike

我很难尝试获得带有 ruby 和诅咒的纯白色(背景)和黑色(前景)文本。

用这段代码

Curses.init_pair(1,COLOR_BLACK,COLOR_WHITE) 
Curses.attron(Curses.color_pair(1))
Curses.stdscr.addstr str
Curses.attroff(Curses.color_pair(1))

我在浅灰色的背景上看到了黑色的文字(底部的三行截图)

我做错了什么?我尝试从 iterm2 切换到 mac 终端还是一样。

screenshot

最佳答案

大多数实现“ANSI 颜色”的终端在被告知呈现粗体 时使用更强烈的前景 颜色。但是背景没有相应的解决方法。

但是,其中大多数还实现了 SGR 39 和 SGR 49,它们将前景和背景重置为其“默认”颜色。使用它会得到你原来的终端背景(这可能是你想要的)。这是 ncurses 的一项功能,称为 use_default_colors ,我看到的是 available in ruby .

使用该功能,您的示例将

  • 调用 Curses.use_default_colors 方法,
  • 不必费心(例如)创建颜色对,因为默认颜色对 0 会使用终端的默认颜色进行绘制。
  • 其他颜色对(1 到最大对数)会像普通诅咒一样工作。

给出的示例使用颜色对 1。如果您使用的是默认颜色扩展,则可以使用 use_default_colors 方法初始化 Curses。然后,使用默认颜色对 0,您会在大多数终端上看到原始终端颜色。无论 Ruby 包名为“curses”还是“ncurses”,此方法均来自底层 ncurses 库。

颜色对 0 是特殊的(参见 manpage )。您的应用程序无法将其设置为特定颜色。作为扩展,ncurses 提供了一种以有用的方式改变它的方法。

关于 ruby 诅咒 : how to get pure white,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33323516/

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