Obtendo mais de 8 cores em um emulador de terminal no Emacs

14

Meu entendimento é que ansi-termapenas suporta 8 cores (uma boa discussão sobre isso no reddit aqui ).

Enquanto isso, um número crescente de emuladores de terminal (por exemplo, tmuxou iTerm2no OS X) suporta True color(24 bits, ou seja, 16 milhões de cores). Uma boa lista pode ser encontrada aqui .

  • Se o limite de 8 cores for específico ansi-term, existem outros pacotes para emulação de terminal que estão tentando resolver essa limitação?
  • Existem planos para oferecer True colorsuporte a um emulador de terminal no Emacs?

E talvez para confirmar:

  • Existe alguma maneira de efetivamente ter mais de 8 cores em ansi-termbuffers?
  • Os ajustes ansi-color-names-vectorainda são a maneira recomendada de definir ansi-termcores no Emacs 25?

Como testar se um emulador suporta " True color ":

Aqui está um trecho do link acima que testaria se o emulador suporta cores verdadeiras:

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

Se for suportado, a linha inferior exibirá um bom gradiente como o mostrado abaixo:

insira a descrição da imagem aqui


Pelo que li, o NeoVim (editor do VIM) adicionou suporte para ele em 2015, e houve uma solicitação feita aos erros do Emacs para adicioná-lo.

Amelio Vazquez-Reina
fonte
No Emacs 26, não consigo ver ansi-color-names-vectorcomo uma variável que posso personalizar. Além disso, eu corro multi-terme com o zsh como shell. Seu script não produz uma saída positiva :-(
spav 07/02

Respostas: