我/如何在 Nano 语法高亮配置中指定十六进制或 RGB 颜色?

我/如何在 Nano 语法高亮配置中指定十六进制或 RGB 颜色?

我在 nano (PHP) 中启用了语法突出显示,但对默认设置不满意,例如我希望将注释显示为非常浅的灰色。

然而,我发现的文档似乎表明我只能写“黄色”、“红色”等颜色。

有没有办法通过十六进制/RGB 代码指定颜色? bash/nano等可以显示的颜色数量有限制吗?显然我对 Linux 世界不是很有经验。

VIM 同样的问题,如果不可能的话我可能会切换到 VIM。

答案1

纳米很小。在这种情况下,它将选择限制为 8 种预定义的 ANSI 颜色(加上明亮/粗体),以便可以使用预定义符号from curses.h(例如COLOR_BLUE)作为命名指南。

许多终端支持 256 种预定义颜色; nano 无法利用它们,但是Vim 可以

与 GUI 不同,允许直接指定颜色的 R/G/B 内容的终端是一个例外,而不是规则。

一些终端(包括我维护的 Xterm)支持转义序列,将调色板颜色 N 更改为指定的 RGB 值,并将前景色设置为调色板中指定 RGB 值最接近的颜色(使用而不是用于背景)颜色)。 \e]4;N;#RRGGBB\a\e[38;2;R;G;Bm4838然而,更改调色板颜色对于 nano 来说没有用,因为它利用了现存的调色板,与(更大的)Vim 形成鲜明对比,Vim 可以通过附加组件来完成此操作。

在 2015 年 12 月撰写上述内容时,nano 的最新版本是版本 2.4.2(2015 年 7 月)。此时,nano 的 C 语言有 23336 行(7657 条语句),这只是 131621 行文本文件(计算“.po”消息文件)的一小部分。目前(六年后的 2021 年 10 月),程序大小大致相同(行数更少,语句更多),但其他文本文件的源代码树大小大约增加了一倍(253036 行)。它不再完全“小”了(但还远不及 vim 的大小)。在 2020 年 7 月发布 Nano 5.0 的几周前,开发人员为 xterm 的 256 色调色板中的条目添加了八个名称,分别是src/rcfile.c:

const char Hues[COLORCOUNT][8] = { "红色", "绿色", "蓝色",
                                   “黄色”、“青色”、“洋红色”、
                                   “白色”、“黑色”、“正常”、
                                   “粉红色”、“紫色”、“紫红色”、
                                   “泻湖”、“薄荷”、“酸橙”、
                                   “桃子”、“橙子”、“拿铁”、
                                   “灰色”,“灰色”};

短索引[COLORCOUNT] = { COLOR_RED, COLOR_GREEN, COLOR_BLUE,
                              颜色_黄色、颜色_青色、颜色_洋红色、
                              颜色_白色、颜色_黑色、THE_DEFAULT、
                              204、163、134、38、48、148、215、208、137、
                              颜色_黑色 + 8, 颜色_黑色 + 8 };

这似乎不可扩展(但至少它使用了 ncurses)。然而,它没有解决OP的问题,因为它没有提供十六进制或者RGB配置方法纳米。在开发 ncurses 时,我创建了一个示例读取X11 rgb.txt文件,作为使程序以彩色显示 X 个像素图文件的一部分。但它也使用 xterm 的数据文件来读取和显示256 色调色板。有关屏幕截图,请参阅讨论图片程序

答案2

在提出这个问题大约六年后,具有此功能的 nano 版本发布了:

https://9to5linux.com/gnu-nano-6-0-text-editor-is-out-with-new-color-names-suspension-enabled-by-default

相关内容