Solución:
Las secuencias de escape ANSI que está buscando son el subconjunto Seleccionar representación gráfica. Todos estos tienen la forma
033[XXXm
where XXX
is a series of semicolon-separated parameters.
To say, make text red, bold, and underlined (we’ll discuss many other options below) in C you might write:
printf(" 33[31;1;4mHello 33[0m");
In C++ you’d use
std::cout<<" 33[31;1;4mHello 33[0m";
In Python3 you’d use
print(" 33[31;1;4mHello 33[0m")
and in Bash you’d use
echo -e " 33[31;1;4mHello 33[0m"
where the first part makes the text red (31
), bold (1
), underlined (4
) and the last part clears all this (0
).
As described in the table below, there are a large number of text properties you can set, such as boldness, font, underlining, &c. (Isn’t it silly that StackOverflow doesn’t allow you to put proper tables in answers?)
Font Effects
Code | Effect | Note |
---|---|---|
0 | Reset / Normal | all attributes off |
1 | Bold or increased intensity | |
2 | Faint (decreased intensity) | Not widely supported. |
3 | Italic | Not widely supported. Sometimes treated as inverse. |
4 | Underline | |
5 | Slow Blink | less than 150 per minute |
6 | Rapid Blink | MS-DOS ANSI.SYS; 150+ per minute; not widely supported |
7 | [[reverse video]] | intercambiar colores de primer plano y de fondo |
8 | Encubrir | No cuenta con un amplio apoyo. |
9 | Tachado | Caracteres legibles, pero marcados para su eliminación. No cuenta con un amplio apoyo. |
10 | Fuente principal (predeterminada) | |
11-19 | Fuente alternativa | Seleccionar fuente alternativa n-10
|
20 | Fraktur | casi nunca apoyado |
21 | Negrita o subrayado doble | Negrita no cuenta con un amplio apoyo; el subrayado doble casi nunca se admite. |
22 | Intensidad o color normal | Ni audaz ni débil |
23 | No cursiva, no Fraktur | |
24 | Subrayar fuera | Sin subrayado simple o doble |
25 | Parpadear | |
27 | Inverso desactivado | |
28 | Revelar | ocultar |
29 | No tachado | |
30–37 | Establecer color de primer plano | Consulte la tabla de colores a continuación. |
38 | Establecer color de primer plano | Los siguientes argumentos son 5;<n> o 2;<r>;<g>;<b> , vea abajo |
39 | Color de primer plano predeterminado | implementación definida (según estándar) |
40–47 | Establecer color de fondo | Consulte la tabla de colores a continuación. |
48 | Establecer color de fondo | Los siguientes argumentos son 5;<n> o 2;<r>;<g>;<b> , vea abajo |
49 | Color de fondo predeterminado | implementación definida (según estándar) |
51 | Enmarcado | |
52 | Rodeado | |
53 | Subrayado | |
54 | No enmarcado ni rodeado | |
55 | No subrayado | |
60 | ideograma subrayado | casi nunca apoyado |
61 | ideograma doble subrayado | casi nunca apoyado |
62 | ideograma overline | casi nunca apoyado |
63 | ideograma doble superposición | casi nunca apoyado |
64 | marcado de estrés ideograma | casi nunca apoyado |
sesenta y cinco | atributos de ideograma desactivados | restablecer los efectos de todos los 60-64 |
90–97 | Establecer color de primer plano brillante | aixterm (no en estándar) |
100-107 | Establecer color de fondo brillante | aixterm (no en estándar) |
Colores de 2 bits
¡Ya tienes esto!
Colores de 4 bits
Los estándares que implementan los colores de los terminales comenzaron con opciones limitadas (4 bits). La siguiente tabla enumera los valores RGB de los colores de fondo y primer plano utilizados para estos por una variedad de emuladores de terminal:
Usando lo anterior, puede hacer texto rojo sobre un fondo verde (pero ¿por qué?) Usando: