Pada sebagian besar terminal dimungkinkan untuk mewarnai keluaran menggunakan \033
urutan pelarian ANSI.
Saya mencari daftar semua warna dan opsi yang didukung (seperti cerah dan berkedip).
Karena mungkin ada perbedaan antara terminal yang mendukungnya, saya terutama tertarik pada urutan yang didukung oleh terminal yang kompatibel dengan xterm.
colors
terminal
ansi-escape
Pencuri
sumber
sumber
Jawaban:
Urutan escape ANSI yang Anda cari adalah subset Select Graphic Rendition. Semua ini memiliki formulir
di mana
XXX
serangkaian parameter yang dipisahkan titik koma.Untuk mengatakan, buat teks merah, tebal, dan bergaris bawah (kami akan membahas banyak opsi lain di bawah) di C yang dapat Anda tulis:
Di C ++ Anda akan menggunakan
Di Python3 Anda akan menggunakan
dan di Bash Anda akan menggunakan
di mana bagian pertama membuat teks merah (
31
), tebal (1
), bergaris bawah (4
) dan bagian terakhir menghapus semua ini (0
).Seperti dijelaskan dalam tabel di bawah, ada sejumlah besar properti teks yang dapat Anda atur, seperti huruf tebal, huruf, garis bawah, & c. (Bukankah konyol bahwa StackOverflow tidak memungkinkan Anda untuk menempatkan tabel yang tepat sebagai jawaban?)
Efek Huruf
Warna 2-bit
Anda sudah mendapatkan ini!
Warna 4-bit
Standar yang menerapkan warna terminal dimulai dengan opsi terbatas (4-bit). Tabel di bawah ini mencantumkan nilai RGB warna latar belakang dan latar depan yang digunakan untuk ini oleh berbagai emulator terminal:
Dengan menggunakan di atas, Anda dapat membuat teks merah pada latar belakang hijau (tapi mengapa?) Menggunakan:
11 Warna (Selingan)
Dalam buku mereka "Istilah Warna Dasar: Universalitas dan Evolusi mereka", Brent Berlin dan Paul Kay menggunakan data yang dikumpulkan dari dua puluh bahasa yang berbeda dari berbagai keluarga bahasa untuk mengidentifikasi sebelas kategori warna dasar yang mungkin: putih, hitam, merah, hijau, kuning, biru, coklat, ungu, merah muda, oranye, dan abu-abu.
Berlin dan Kay menemukan bahwa, dalam bahasa-bahasa dengan kategori warna kurang dari sebelas maksimum, warna-warna tersebut mengikuti pola evolusi tertentu. Pola ini adalah sebagai berikut:
Ini mungkin sebabnya kisah Beowulf hanya berisi warna hitam, putih, dan merah. Mungkin juga mengapa Alkitab tidak mengandung warna biru. Homer's Odyssey mengandung warna hitam hampir 200 kali dan putih sekitar 100 kali. Merah muncul 15 kali, sedangkan kuning dan hijau hanya muncul 10 kali. ( Informasi lebih lanjut di sini )
Perbedaan antar bahasa juga menarik: perhatikan kelimpahan kata-kata warna yang berbeda yang digunakan oleh Inggris vs Cina. Namun, menggali lebih dalam ke bahasa-bahasa ini menunjukkan bahwa masing-masing menggunakan warna dengan cara yang berbeda. ( Informasi lebih lanjut )
Secara umum, penamaan, penggunaan, dan pengelompokan warna dalam bahasa manusia sangat menarik. Sekarang, kembali ke pertunjukan.
8-bit (256) warna
Teknologi canggih, dan tabel 256 warna yang dipilih sebelumnya tersedia, seperti yang ditunjukkan di bawah ini.
Dengan menggunakan di atas, Anda dapat membuat teks merah muda seperti:
Dan buatlah latar belakang biru pagi menggunakan
Dan, tentu saja, Anda dapat menggabungkan ini:
Warna 8-bit diatur seperti ini:
SEMUA WARNA
Sekarang kita hidup di masa depan, dan spektrum RGB penuh tersedia menggunakan:
Jadi, Anda dapat menempatkan teks merah muda di latar belakang kecoklatan menggunakan
Dukungan untuk terminal "true color" tercantum di sini .
Banyak hal di atas diambil dari halaman Wikipedia " ANSI escape code ".
Naskah yang Berguna untuk Mengingatkan Diri Sendiri
Karena saya sering mencoba mengingat warna apa itu, saya punya skrip praktis bernama
~/bin/ansi_colours
::Ini mencetak
sumber
echo -e "\033[38;05;34;1mHi"
danecho -e "\033[38;05;34m\033[1mHi"
bekerja untuk saya, meskipun efek font anti-aliasing memang menyebabkan penampilan warna berubah sedikit di bawah huruf tebal di terminal saya menguji ini.\033[
Kode-kode SGR ( ) yang dimulai dengan 38 dan 48 harus dipisahkan dengan yang dinyatakan lain:
sebagai sub-pemisah meskipun ini tidak sepenuhnya jelas dari sumber-sumber utama di: ecma-international.org/publications/files/ECMA-ST/Ecma -048.pdf dan itu.int/rec/… . Juga beberapa interpretasi lupa ID spasi warna dalam bentuk2
(16M-warna RGB) /3
(16M-warna CMY) /4
(??? CMYK) bentuk - misalnya seharusnya\033[38:2::255:255:255m
untuk latar depan 16M Putih dan tidak\033[38:2:255:255:255m
!Bagaimana tentang:
ECMA-48 - Fungsi Kontrol untuk Set Karakter Kode, edisi ke-5 (Juni 1991) - Standar yang mendefinisikan kode kontrol warna, yang tampaknya didukung juga oleh xterm.
SGR 38 dan 48 awalnya dicadangkan oleh ECMA-48, tetapi dibuat beberapa tahun kemudian dalam standar ITU, IEC, dan ISO bersama, yang datang dalam beberapa bagian dan yang (di antara banyak hal lainnya) mendokumentasikan SGR 38/48 urutan kontrol untuk warna langsung dan warna yang diindeks :
Ada kolom untuk xterm dalam tabel ini di halaman Wikipedia untuk kode pelarian ANSI
sumber
Ada beberapa yang lebih menarik beserta info terkait.
sumber
Ini benar-benar terkait dengan terminal Anda. VTE tidak mendukung berkedip, Jika Anda menggunakan
gnome-terminal
,tilda
,guake
,terminator
,xfce4-terminal
dan sebagainya sesuai VTE, Anda akan tidak memiliki berkedip.Jika Anda menggunakan atau ingin menggunakan kedip pada VTE, Anda harus menggunakannya
xterm
.Anda dapat menggunakan perintah infocmp dengan nama terminal:
Sebagai contoh :
sumber
Bagi yang tidak mendapatkan hasil yang layak selain bahasa yang disebutkan, jika Anda menggunakan C # untuk mencetak teks ke jendela konsol (terminal) Anda harus mengganti "\ 033" dengan "\ x1b ". Dalam Visual Basic akan Chrw (27) .
sumber