Uzyskanie ponad 8 kolorów w emulatorze terminali wewnątrz Emacsa

14

Rozumiem, że ansi-termobsługuje tylko 8 kolorów (dobre omówienie tego na czerwono tutaj ).

Tymczasem coraz większa liczba emulatorów terminali (np. tmuxLub iTerm2w OS X) obsługuje True color(24 bity, tj. 16 milionów kolorów). Dobra lista znajduje się tutaj .

  • Jeśli 8-kolorowa czapka jest specyficzna dla ansi-term, czy są jakieś inne pakiety do emulacji terminala, które próbują rozwiązać to ograniczenie?
  • Czy są jakieś plany wprowadzenia True colorobsługi emulatora terminali w Emacsie?

I może potwierdzić:

  • Czy jest jakiś sposób, aby skutecznie mieć więcej niż 8 kolorów w ansi-termbuforach?
  • Czy poprawianie ansi-color-names-vectornadal jest zalecanym sposobem ustawiania ansi-termkolorów w Emacsie 25?

Jak sprawdzić, czy emulator obsługuje „ True color ”:

Oto fragment powyższego linku, który sprawdziłby, czy emulator obsługuje kolory True:

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";
}'

Jeśli jest obsługiwany, dolny wiersz wyświetlałby ładny gradient, taki jak pokazano poniżej:

wprowadź opis zdjęcia tutaj


Z tego, co przeczytałem, NeoVim (edytor VIM) dodał obsługę tego w 2015 roku, a do błędów Emacsa zgłoszono prośbę o dodanie.

Amelio Vazquez-Reina
źródło
Począwszy od Emacsa 26, nie widzę ansi-color-names-vectorjako zmiennej, którą mogę dostosować. Poza tym multi-termdziałam z Zsh jako powłoką. Twój skrypt nie generuje pozytywnych wyników :-(
spav

Odpowiedzi: