Saya hanya ingin membuat Emacs terlihat cantik — menggunakan warna 24-bit di terminal
- Komunitas Emacs aktif, dan melalui LSP menyediakan fitur pelengkapan otomatis modern serta pemeriksaan tipe inline.
- Di lingkungan grafis, Emacs secara otomatis mendukung warna 24-bit, tetapi di terminal tidak demikian.
Kode escape ANSI
- Terminal perangkat keras awal menyediakan kode kontrol yang tidak saling kompatibel, dan ANSI menstandarkannya.
- Melalui SGR (Select Graphics Rendition), berbagai atribut tampilan karakter dapat diatur.
Warna 3-, 4-, dan 8-bit
- Saat warna diperkenalkan, ada 8 warna dasar, lalu kemudian warna terang ditambahkan sehingga totalnya menjadi 16 warna.
- Pada 1999, Todd Larason menambahkan patch ke xterm untuk mendukung 256 warna.
Dari mana dukungan warna 24-bit berasal?
- Cara mengirim warna 8-bit dan 24-bit ke terminal yang kompatibel sudah terdokumentasi dengan baik.
- Melalui proses standardisasi ANSI pada tahun 70-an dan ISO 8613-6 (ITU T.416) pada tahun 90-an, 38 dan 48 didefinisikan sebagai mode warna foreground dan background yang diperluas.
Terminfo
- Terminfo menyediakan basis data kemampuan terminal, dan melalui variabel lingkungan TERM, program diberi tahu rekaman terminfo mana yang harus digunakan.
xterm-256color dan xterm-direct masing-masing mendukung 256 warna dan warna RGB.
Pengaturan TERM: masalah titik koma
- Karena banyak terminal hanya mendukung sintaks titik koma, Anda perlu memastikan TERM telah diatur dengan benar.
Pengaturan Emacs
- Emacs mendokumentasikan cara mendeteksi dukungan truecolor.
RGB adalah fitur warna bawaan Emacs, dan terlebih dahulu mencari string setf24 dan setb24.
Terminal bertingkat
- Alur kerja umum menggunakan beberapa terminal yang saling bertingkat.
- Semua lapisan harus memahami warna 24-bit dan mengonversinya dengan akurat.
Emulator terminal grafis
- Sebagian besar terminal menetapkan TERM ke nilai bawaan yang masuk akal atau memungkinkan override.
ssh
ssh meneruskan nilai TERM ke host jarak jauh.
tmux
- Di dalam
tmux, TERM perlu diatur ke nilai seperti tmux-direct.
Pendapat GN⁺
- Hal terpenting dari tulisan ini adalah kebutuhan pengguna yang ingin memakai warna berkualitas tinggi bahkan di lingkungan terminal, serta perkembangan teknis yang memungkinkan hal itu.
- Dukungan warna 24-bit adalah fitur penting yang memungkinkan pengembang memberikan pengalaman pengguna yang lebih baik, terutama sangat meningkatkan kenyamanan visual pada alat seperti editor kode.
- Tulisan ini akan menarik dan bermanfaat bagi pengguna terminal dan Emacs, serta memberikan informasi berguna bagi mereka yang mengejar pengalaman visual yang unggul bahkan di lingkungan kerja berbasis terminal.
1 komentar
Komentar Hacker News
Mengungkapkan keterkejutan atas kompleksitas aplikasi terminal, serta menyampaikan terima kasih kepada para pengembang aplikasi terminal seperti iTerm dan Kitty.
Secara pribadi merasa menyesuaikan palet 16 warna di tiap aplikasi terminal lebih mudah daripada mencocokkan kode terminal di sisi aplikasi secara tepat.
.Xdefaultsdan file tema kustom.el.lsjuga menjadi lebih baik.Menduga penulis akan mendapat pengalaman yang lebih baik jika mengetahui
export COLORTERM=truecolor.Menekankan bahwa saat memakai Emacs, tidak wajib menggunakan terminal, karena bisa memakai frontend "grafis" untuk MacOS, Windows, X.org, atau Wayland.
Menunjukkan bahwa komputasi mungkin telah kehilangan arah melalui sistem produksi yang memakai emulator terminal, editor, dan versi sistem operasi dari tahun 1970-an.
Bercanda bahwa ia ingin membuat Emacs terlihat lebih keren dengan memakai Cool Retro Term.
Menemukan bahwa di command prompt Windows 10, urutan escape ANSI standar berfungsi, dan warna 24-bit juga bekerja dengan baik.
Menyebutkan bahwa hal terbaik dari Emacs dibandingkan vim/neovim adalah dukungan GUI diperlakukan sebagai warga kelas satu.
Mengatakan bahwa ia mungkin tidak akan memakai fitur ini karena menggunakan konfigurasi Emacs dengan penggunaan warna yang minimal, tetapi tetap sangat menikmati bacaan tersebut.
Mengkritik bahwa sungguh memalukan standar dikunci di balik harga tinggi sehingga orang terpaksa menempuh jalan sepanjang ini tanpa membelinya.