Получение более 8 цветов в эмуляторе терминала в Emacs

14

Я понимаю, что ansi-termподдерживает только 8 цветов (хорошее обсуждение этого в Reddit здесь ).

Между тем, все большее число эмуляторов терминалов (например, tmuxили iTerm2в OS X) поддерживают True color(24 бит, то есть 16 миллионов цветов). Хороший список можно найти здесь .

  • Если для 8-цветного колпачка характерно ansi-term, существуют ли другие пакеты для эмуляции терминала, которые пытаются устранить это ограничение?
  • Есть ли планы по True colorподдержке эмулятора терминала в Emacs?

И, возможно, чтобы подтвердить:

  • Есть ли способ эффективно иметь более 8 цветов в ansi-termбуферах?
  • Есть настройки ansi-color-names-vectorеще рекомендуемый способ настройки ansi-termцвета в Emacs 25?

Как проверить, поддерживает ли эмулятор « True color »:

Вот фрагмент из приведенной выше ссылки, который проверяет, поддерживает ли эмулятор Истинные цвета:

awk 'BEGIN{
    s="/\\/\\/\\/\\/\\"; s=s s s s s s s s;
    for (colnum = 0; colnum<77; colnum++) {
        r = 255-(colnum*255/76);
        g = (colnum*510/76);
        b = (colnum*255/76);
        if (g>255) g = 510-g;
        printf "\033[48;2;%d;%d;%dm", r,g,b;
        printf "\033[38;2;%d;%d;%dm", 255-r,255-g,255-b;
        printf "%s\033[0m", substr(s,colnum+1,1);
    }
    printf "\n";
}'

Если это поддерживается, нижняя строка будет отображать хороший градиент, как показано ниже:

введите описание изображения здесь


Из того, что я прочитал, NeoVim (редактор VIM) добавил поддержку для этого в 2015 году, и был сделан запрос к ошибкам Emacs, чтобы добавить его.

Амелио Васкес-Рейна
источник
Начиная с Emacs 26, я не вижу ansi-color-names-vectorпеременную, которую я могу настроить. Кроме того, я бегу multi-termи с Zsh в качестве оболочки. Ваш скрипт не дает положительного результата :-(
spav

Ответы:

2

Это верно, что ansi-term поддерживает только 8 цветов, но, используя xterm-color.el вместо ansi-color.el, вы получите 256 цветов.

«ANSI & xterm-256 цветной текстовый переводчик свойств для Emacs»

https://github.com/atomontage/xterm-color

Эрик Б
источник
Как именно я буду использовать это ansi-termв Emacs?
Амелио Васкес-Рейна
Это не предполагаемое использование, но смотрите: github.com/atomontage/xterm-color/issues/2
Эрик Б,