如何通过诅咒使用终端调色板

2024-01-06

我无法让终端调色板与诅咒一起使用。

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 终端调色板中确实有更多颜色。我怎样才能在curses中访问它们?


以下是我在自己的电脑(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 是前景色的终端调色板。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何通过诅咒使用终端调色板 的相关文章

随机推荐

  • 函数参数中的“this”

    查看一些代码示例HtmlHelpers 我看到如下声明 public static string HelperName this HtmlHelper htmlHelper more regular params 我不记得在其他地方看到过这
  • ggplot2 facet_grid() strip_text_x() 基于因子的不同颜色

    有没有办法给名称着色或去除背景 不是实际网格的背景 正如这篇文章中所回答的那样 使用facet grid 有条件地更改面板背景 https stackoverflow com questions 9847559 conditionally
  • 为什么后台线程中未处理的异常不会导致应用程序域崩溃?

    我完全困惑了 我确信如果线程中存在未捕获的异常 NET 会关闭整个应用程序域 因此我从未对此进行过测试 但是我只是尝试了以下代码并且它没有失败 有人可以解释为什么吗 在 NET 4和3 5中尝试过 static void Main stri
  • 带参数的别名

    是否有可能使用 zsh 别名中的参数 像这样的事情 alias ssh nokia ssh root
  • ndb 和一致性:为什么在没有父级的查询中发生这种行为

    我正在使用 Python 和 ndb 做一些工作 但不明白为什么 我将发布上面的案例和代码 模型 py class Reference ndb Model kind ndb StringProperty required True crea
  • 混合单选按钮和文本字段

    我正在尝试将单选按钮和 text field 组合为单个值 f radio button system bacteria Bacteria f radio button system mammalian Mammalian f radio
  • overpass-api 方式查询包含坐标

    我正在尝试查询特定区域的酒店 不幸的是 我需要查询节点和路 因为有些酒店仅存储为路 有些则存储为节点 http overpass osm rambler ru cgi interpreter data 28way tourism hotel
  • Azure Web App 上的 URL 重写提供程序

    我们使用来自的 DbProviderURL 重写扩展性示例 http www iis net learn extensions url rewrite module using custom rewrite providers with u
  • 在 Neo4j 中查找集群

    你好 我有一个 neo4j 数据库 类似于下面 CREATE Person name Ryan TRADES gt fish Product name Fish ken Person name Ken TRADES gt fish mary
  • 如何取消绑定() .hover() 但不取消绑定.click()?

    我正在使用 Bootstrap 3 创建一个网站 并且还使用一个脚本 使用 hover 函数使下拉菜单出现在悬停时 我试图通过使用 enquire js 在小型设备上防止这种情况 我正在尝试使用以下代码取消绑定元素上的 hover 事件 d
  • 使用远程 Web 测试框架(BrowserStack 和 LambdaTest)时,chrome 上的表单输入条目失败 [重复]

    这个问题在这里已经有答案了 我的测试套件在本地以及使用 Chrome 的 gitlab 管道中运行良好 然而 当在远程测试框架上使用 Chrome 仅 运行它们时 它们会在登录页面上失败 我测试了 BrowserStack 和 LamdaT
  • 为什么声明浮点变量时需要在十进制数末尾添加“f”?

    我以前见过这个问题 然而 我对给出的答案并不满意 典型的响应是 Java 将数字视为双精度数 因为这是 JAVA 中的默认值 并在编译时给出不匹配错误 这种行为显然完全忽略了我对 float 声明的使用 我的问题是 如果我将变量类型声明为f
  • IIS 网络错误 (tcp_error)

    我在使用 IIS 时遇到问题 我在服务器上部署了一个Web项目 然后在该服务器上 本地 运行 就可以了 但是当我从另一台计算机连接时 我收到此消息 网络错误 tcp error 发生通信错误 操作超时 Web 服务器可能已关闭 太忙或遇到其
  • 以编程方式从布局中删除块

    我想根据通过前端路由器控制器登录的用户从产品视图页面中删除product options wrapper块 我知道我可以以编程方式附加一个新块 但我没有找到删除函数 尝试过某事 像那样 this gt getLayout gt unsetB
  • ES6 从 root 导入

    我目前正在玩 React Native 我正在尝试构建我的应用程序 但是它开始因导入而变得混乱 app components Loading js index ios js 现在 在我的index ios js我能够简单地做 import
  • Java:匹配字符串中的短语

    我在数据库和输入字符串中有一个短语列表 短语可能由一个或多个单词组成 我需要找出哪些短语出现在输入字符串中 在Java中是否有一种有效的方法来执行这种匹配 一个快速的破解方法是 基于组合短语构建正则表达式 构造一个集合 列出迄今为止尚未匹配
  • istream 运算符重载 C++

    我正在尝试执行一个简单的 istream 运算符重载 但由于某种原因 一旦进入此函数 程序就会进入无限循环 请帮忙 my code include
  • PHP 中全局错误处理的最佳实践?

    我在 PHP 5 中使用了一个将错误转换为异常的类 并将错误记录到文件中和 或通过电子邮件将它们发送到指定帐户 有一个更好的方法吗 我知道这方面有一些东西可以做得更好 我正在使用 set error handler set error ha
  • Oracle 更新批处理模型 - 在同一应用程序中使用两种批处理模型

    Oracle JDBC 支持两种不同的更新批处理模型 标准批处理和 Oracle 特定批处理 根据 oracle 11g JDBC 开发人员指南 在任何单个应用程序中 您可以使用其中一种模型 但不是两者兼而有之 当您混合这些时 Oracle
  • 如何通过诅咒使用终端调色板

    我无法让终端调色板与诅咒一起使用 import curses def main stdscr curses use default colors for i in range 0 7 stdscr addstr Hello curses c