Как vim разрешает имена цветов в 256-цветовом выражении?

Например,

ctermfg=DarkBlue

Как vim решает значение rgb для имени цвета DarkBlue? Было сказано, что это было описано в $VIMRUNTIME/rgb.txt, Но в некоторых выпусках vim этот файл не существует.

Кстати, как vim определяет значение rgb для числового цвета, например

ctermfg=0

2 ответа

Числовые цвета - это escape-коды ANSI, основанные на 256-цветовой карте xterm, которую можно увидеть здесь: https://upload.wikimedia.org/wikipedia/en/1/15/Xterm_256color_chart.svg

Раньше было только 8 цветов (от 0 до 7): черный, красный, зеленый, желтый, синий, пурпурный, голубой и белый. Другие 248 определены следующим образом:

0x08-0x0F:  high intensity colors
0x10-0xE7:  6 × 6 × 6 = 216 colors: 16 + 36 × r + 6 × g + b (0 ≤ r, g, b ≤ 5)
0xE8-0xFF:  grayscale from black to white in 24 steps

Информация из https://en.wikipedia.org/wiki/ANSI_escape_code

Vim ничего не решает об этих цветах.

Он просто говорит эмулятору терминала использовать DarkBlue или же 0, не заботясь о фактических значениях RGB вообще.

Другие вопросы по тегам