如何在curses中使用终端调色板
·
回答问题
我无法让终端调色板与诅咒一起使用。
import curses
def main(stdscr):
curses.use_default_colors()
for i in range(0,7):
stdscr.addstr("Hello", curses.color_pair(i))
stdscr.getch()
curses.wrapper(main)
此 python 脚本产生以下屏幕:
但是,我的 gnome-terminal 调色板中确实有更多颜色。我如何在 curses 中访问它们?
Answers
以下是我在自己的电脑(Ubuntu 14.04,python 3)上通过实验得出的。
-
有256种颜色(由前8位定义)。
-
其他位用于附加属性,例如突出显示。
-
将数字 -1 作为颜色传递回默认的背景和前景色。
-
颜色对 0 (mod 256) 固定在 (-1, -1)。
-
颜色 0 到 15 是终端调色板颜色。
考虑以下测试代码。将此添加到您的.bashrc
:
# Set proper $TERM if we are running gnome-terminal
if [ "$COLORTERM" == "gnome-terminal" ]
then
TERM=xterm-256color
fi
把它放在一个python文件中并运行它。
import curses
def main(stdscr):
curses.start_color()
curses.use_default_colors()
for i in range(0, curses.COLORS):
curses.init_pair(i + 1, i, -1)
try:
for i in range(0, 255):
stdscr.addstr(str(i), curses.color_pair(i))
except curses.ERR:
# End of screen reached
pass
stdscr.getch()
curses.wrapper(main)
运行它将产生以下输出。
如您所见,颜色对 1-16 是前景色的终端调色板。
更多推荐
所有评论(0)