Vim

我/如何在 nano 語法高亮配置中指定十六進製或 RGB 的顏色?

  • October 8, 2021

我在 nano (PHP) 中啟用了語法高亮,但對預設設置不滿意,例如,我希望將註釋顯示為非常淺的灰色。

但是,我找到的文件似乎表明我只能寫“黃色”、“紅色”等顏色。

有沒有辦法通過其十六進制/RGB程式碼指定顏色?bash/nano 等可以顯示的顏色數量是否有限制?顯然我對 Linux 世界不是很有經驗。

VIM 的同樣問題,如果不可能,我可能會切換到 VIM。

納米很小。在這種情況下,它將選擇限制為 8 種預定義的 ANSI 顏色(加上明亮/粗體),以便它可以使用(例如 )中的預定義符號作為命名指南。curses.h``COLOR_BLUE

許多終端支持 256 種預定義顏色;nano 不能利用它們,但Vim 可以

與 GUI 不同,允許直接指定顏色的 R/G/B 內容的終端是例外而不是規則。

一些終端(包括我維護的 Xterm)支持轉義序列以將調色板顏色 N 更改為指定的 RGB 值,並將前景色設置為指定 RGB 值的調色板中最接近的近似值(用於代替背景顏色)。 但是,更改調色板顏色對 nano 沒有用,因為它利用了現有的調色板,而(更大的)Vim 可以通過附加組件來做到這一點。\e]4;*N*;#*RRGGBB*\a``\e[38;2;*R*;*G*;*B*m``48``38

在 2015 年 12 月撰寫上述內容時,nano 的最新版本是 2.4.2 版(2015 年 7 月)。那時,nano 在 C 語言中是 23336 行(7657 條語句),這只是 131621 行文本文件(包括“.po”消息文件)的一小部分。目前(6 年後的 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,
COLOR_YELLOW、COLOR_CYAN、COLOR_MAGENTA、
COLOR_WHITE、COLOR_BLACK、THE_DEFAULT、
204, 163, 134, 38, 48, 148, 215, 208, 137,
COLOR_BLACK + 8,COLOR_BLACK + 8 };

這似乎不可擴展(但至少它使用 ncurses)。但是,它沒有解決 OP 的問題,因為它沒有提供用於配置nano的**十六進製RGB方法。在開發 ncurses 時,我創建了一個讀取 X11 rgb.txt 文件的範例,作為使程序以彩色顯示 X pixmap 文件的一部分。但它也使用 xterm 的256 色調色板的數據文件讀取和顯示。有關螢幕截圖,請參閱picsmap 程序的討論。

引用自:https://unix.stackexchange.com/questions/250425