小编Jon*_*son的帖子

用于获取 ANSI 颜色的 RGB 值的 Xterm 控制序列

这肉

在(某些)终端中,您可以使用这样的序列;

printf "\e]4;3;rgb:cc/78/33\e\\"
Run Code Online (Sandbox Code Playgroud)

将 ANSI 调色板中的第三种颜色设置为 #CC7833 表示的 RGB 值。你能做相反的事吗?我可以获得第三种(好吧,任何真正的)颜色的当前 RGB 值(任何形式)?

为什么?

就我而言,您想要这样做的原因是能够在弄乱它之前(故意)保存整个颜色表。我希望能够使用 RGB 精确颜色主题在终端中列出代码,请叫我 anal。为此,我必须重写终端颜色表中的颜色定义,如上所述。

对我来说,问题现在已经解决了。但是,由于我想将此功能添加到很多人使用的现有开源项目(pry)中,因此我需要能够在设置程序会话的主题颜色之前保存调色板的当前状态,然后切换它们之后回来。

我知道有些终端在设置中有这个,有些系统在配置文件中有它。但我需要一些通用的并且可以跨系统工作的东西。理想情况下,所有系统都支持以上述方式设置它们:)

奖金

现在,颜色的变化会影响整个系统、所有终端会话,甚至在关闭并重新启动终端后(这是在 OS X Mountain Lion 上使用 iTerm2)。

如果效果可以本地化,比如子 shell,问题就会消失,因为当进程结束时,更改将随着子 shell 一起消失。更好的是,因为它可以防止会话崩溃的情况......

shell colors xterm ansi shell-script

5
推荐指数
1
解决办法
1574
查看次数

标签 统计

ansi ×1

colors ×1

shell ×1

shell-script ×1

xterm ×1