大多数实现“ANSI颜色”的终端在被告知渲染“粗体”时使用更强烈的前景颜色。但是,对于背景没有相应的解决方法。
然而,其中大部分也实现了SGR 39和SGR 49,它们将前景和背景重置为其“默认”颜色。使用这个功能可以获得您原始的终端背景(这很可能是您想要的)。这是ncurses的一个特性,称为use_default_colors,我看到它在ruby中可用。
使用该功能,您的示例将会:
use_default_colors
方法初始化Curses
。然后,使用默认颜色对0,在大多数终端上您将看到原始终端颜色。该方法来自底层ncurses库,无论Ruby包是否称为“curses”或“ncurses”。
use_default_colors
,因为如果不使用它,Ruby 会默认使用反转的颜色方案。但即便使用了use_default_colors
,问题仍然存在。此外,我正在使用 Curses,而不是 ncurses。 - american-ninja-warrior