热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

从ruby??ncurses中获得256种颜色

Getting256colorsoutofruby-ncurses我有256种


Getting 256 colors out of ruby-ncurses


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


我不确定这是否就是全部内容,但请确保您的终端功能确实提供了 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 的那个]


njsf:你部分地在这里,在修改了很多之后,我最终让它工作了。谢谢你的帮助。故事:XTerm(以及 rxvt 和 Eterm)通过转义序列(我所看到的)支持 256 种颜色,但 \'tput colors\' 会说 \'8\' 并且 ncurses 将无法获得它们,因为 ncurses 玩得很好,并试图通过 terminfo.

访问

为了任何有类似痛苦的人的利益:

我发现我需要安装 ncurses-term (Ubuntu) 软件包来获取 /lib/terminfo/x/xterm-256color 和其他 256 色 terminfo 文件。然后我将我的 TERM 设置为 xterm-256color 并将行 \'*customization: -color\' 添加到我的 ~/.Xdefaults 中,运行 \'xrdb -merge ~/.Xdefaults\' 来加载它,从那时起我在新的 xterms 中有适当的 256 色支持。



相关讨论




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






设置

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

适用于 ubuntu 10.04






推荐阅读
  • JVM参数设置与命令行工具详解
    JVM参数配置与命令行工具的深入解析旨在优化系统性能,通过合理设置JVM参数,确保在高吞吐量的前提下,有效减少垃圾回收(GC)的频率,进而降低系统停顿时间,提升服务的稳定性和响应速度。此外,本文还将详细介绍常用的JVM命令行工具,帮助开发者更好地监控和调优JVM运行状态。 ... [详细]
  • 本文介绍了 Go 语言中的高性能、可扩展、轻量级 Web 框架 Echo。Echo 框架简单易用,仅需几行代码即可启动一个高性能 HTTP 服务。 ... [详细]
  • malloc 是 C 语言中的一个标准库函数,全称为 memory allocation,即动态内存分配。它用于在程序运行时申请一块指定大小的连续内存区域,并返回该区域的起始地址。当无法预先确定内存的具体位置时,可以通过 malloc 动态分配内存。 ... [详细]
  • 在 CentOS 6.4 上安装 QT5 并启动 Qt Creator 时,可能会遇到缺少 GLIBCXX_3.4.15 的问题。这是由于系统中的 libstdc++.so.6 版本过低。本文将详细介绍如何通过更新 GCC 版本来解决这一问题。 ... [详细]
  • MATLAB字典学习工具箱SPAMS:稀疏与字典学习的详细介绍、配置及应用实例
    SPAMS(Sparse Modeling Software)是一个强大的开源优化工具箱,专为解决多种稀疏估计问题而设计。该工具箱基于MATLAB,提供了丰富的算法和函数,适用于字典学习、信号处理和机器学习等领域。本文将详细介绍SPAMS的配置方法、核心功能及其在实际应用中的典型案例,帮助用户更好地理解和使用这一工具箱。 ... [详细]
  • 本文详细介绍了在Linux系统上编译安装MySQL 5.5源码的步骤。首先,通过Yum安装必要的依赖软件包,如GCC、GCC-C++等,确保编译环境的完备。接着,下载并解压MySQL 5.5的源码包,配置编译选项,进行编译和安装。最后,完成安装后,进行基本的配置和启动测试,确保MySQL服务正常运行。 ... [详细]
  • 本文探讨了资源访问的学习路径与方法,旨在帮助学习者更高效地获取和利用各类资源。通过分析不同资源的特点和应用场景,提出了多种实用的学习策略和技术手段,为学习者提供了系统的指导和建议。 ... [详细]
  • 在CentOS 7上部署WebRTC网关Janus
    在CentOS 7上部署WebRTC网关Janus ... [详细]
  • 在CentOS上部署并使用FFmpeg多媒体处理工具
    最近在进行音频处理时需要用到FFmpeg,本文将详细介绍如何在CentOS系统上部署并使用这一强大的多媒体处理工具。首先,从官方网站下载FFmpeg的最新版本,然后通过Xftp工具将下载的压缩包(如ffmpeg-4.3.1.tar.xz)传输到服务器上。接下来,解压文件并按照官方文档进行编译安装。安装完成后,可以通过命令行工具验证FFmpeg是否成功安装,并开始进行多媒体文件的转换和处理。此外,文章还将介绍一些常用的FFmpeg命令和参数,帮助用户快速上手。 ... [详细]
  • 在CentOS上部署和配置FreeSWITCH
    在CentOS系统上部署和配置FreeSWITCH的过程涉及多个步骤。本文详细介绍了从源代码安装FreeSWITCH的方法,包括必要的依赖项安装、编译和配置过程。此外,还提供了常见的配置选项和故障排除技巧,帮助用户顺利完成部署并确保系统的稳定运行。 ... [详细]
  • 在Linux环境下编译安装Heartbeat时,常遇到依赖库缺失的问题。为确保顺利安装,建议预先通过yum安装必要的开发库,如glib2-devel、libtool-ltdl-devel、net-snmp-devel、bzip2-devel和ncurses-devel等。这些库是编译过程中不可或缺的组件,能够有效避免编译错误,确保Heartbeat的稳定运行。 ... [详细]
  • 从 Java 过渡到 Ruby,不仅是一次编程语言的转换,更是一段技术进阶的旅程。本文将深入探讨两种语言在语法、生态系统和开发模式上的差异,帮助开发者顺利实现转型,并在新的环境中高效地编写高质量代码。 ... [详细]
  • 在 Linux 系统中,`/proc` 目录实现了一种特殊的文件系统,称为 proc 文件系统。与传统的文件系统不同,proc 文件系统主要用于提供内核和进程信息的动态视图,通过文件和目录的形式呈现。这些信息包括系统状态、进程细节以及各种内核参数,为系统管理员和开发者提供了强大的诊断和调试工具。此外,proc 文件系统还支持实时读取和修改某些内核参数,增强了系统的灵活性和可配置性。 ... [详细]
  • 如何利用Apache与Nginx高效实现动静态内容分离
    如何利用Apache与Nginx高效实现动静态内容分离 ... [详细]
  • 本章节深入探讨了 Webpack 命令的高级功能,涵盖了官方快速入门教程中未涉及的细节。通过实际操作和案例分析,对官方文档进行了详细解读与补充,帮助读者更好地理解和应用这些进阶技巧。 ... [详细]
author-avatar
mobiledu2502914997
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有