Mendapatkan lebih dari 8 warna dalam emulator terminal di dalam Emacs

14

Pemahaman saya adalah bahwa ansi-termhanya mendukung 8 warna (diskusi yang bagus tentang ini di reddit di sini ).

Sementara itu, peningkatan jumlah emulator terminal (misalnya tmuxatau iTerm2dalam OS X) mendukung True color(24 bit, yaitu 16 juta warna). Daftar yang baik dapat ditemukan di sini .

  • Jika batas 8 warna khusus untuk ansi-term, apakah ada paket lain untuk emulasi terminal yang mencoba mengatasi batasan ini?
  • Apakah ada rencana untuk membawa True colordukungan ke emulator terminal di Emacs?

Dan mungkin untuk mengkonfirmasi:

  • Apakah ada cara untuk secara efektif memiliki lebih dari 8 warna dalam ansi-termbuffer?
  • Apakah mengutak-atik ansi-color-names-vectormasih merupakan cara yang disarankan untuk mengatur ansi-termwarna di Emacs 25?

Cara menguji apakah emulator mendukung " True color ":

Berikut ini cuplikan dari tautan di atas yang akan menguji apakah emulator mendukung warna Sejati:

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

Jika didukung, garis bawah akan menampilkan gradien yang bagus seperti yang ditunjukkan di bawah ini:

masukkan deskripsi gambar di sini


Dari apa yang saya baca, NeoVim (editor VIM) menambahkan dukungan untuk itu pada tahun 2015, dan ada permintaan yang dibuat untuk bug Emacs untuk menambahkannya.

Amelio Vazquez-Reina
sumber
Pada Emacs 26, saya tidak dapat melihat ansi-color-names-vectorsebagai variabel yang dapat saya sesuaikan. Selain itu, saya menjalankan multi-termdan dengan zsh sebagai shell. Script Anda tidak menghasilkan output positif :-(
spav

Jawaban:

2

Benar bahwa istilah-ansi hanya mendukung 8 warna, tetapi, menggunakan xterm-color.el daripada ansi-color.el, Anda mendapatkan 256 warna.

"Penerjemah properti teks warna ANSI & xterm-256 untuk Emacs"

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

Erik B
sumber
Bagaimana tepatnya saya menggunakan ini ansi-termdi dalam Emacs?
Amelio Vazquez-Reina
Ini bukan penggunaan yang dimaksudkan, tetapi lihat: github.com/atomontage/xterm-color/issues/2
Erik B