En la mayoría de los terminales, es posible colorear la salida utilizando la \033
secuencia de escape ANSI.
Estoy buscando una lista de todos los colores y opciones compatibles (como brillante y parpadeante).
Como probablemente existan diferencias entre los terminales que los admiten, me interesan principalmente las secuencias compatibles con terminales compatibles con xterm.
colors
terminal
ansi-escape
ThiefMaster
fuente
fuente
Respuestas:
Las secuencias de escape ANSI que está buscando son el subconjunto Seleccionar representación gráfica. Todos estos tienen la forma
donde
XXX
hay una serie de parámetros separados por punto y coma.Para decir, haga el texto rojo, en negrita y subrayado (discutiremos muchas otras opciones a continuación) en C que podría escribir:
En C ++ usarías
En Python3 usarías
y en Bash usarías
donde la primera parte hace que el texto sea rojo (
31
), negrita (1
), subrayado (4
) y la última parte borra todo esto (0
).Como se describe en la tabla a continuación, hay una gran cantidad de propiedades de texto que puede establecer, como negrita, fuente, subrayado, etc. (¿No es tonto que StackOverflow no le permita poner tablas adecuadas en las respuestas?)
Efectos de fuente
Colores de 2 bits
¡Ya tienes esto!
Colores de 4 bits
Los estándares que implementan los colores del terminal 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:
11 colores (un interludio)
En su libro "Términos básicos de color: su universalidad y evolución", Brent Berlin y Paul Kay utilizaron datos recopilados de veinte idiomas diferentes de una gama de familias de idiomas para identificar once posibles categorías básicas de color: blanco, negro, rojo, verde, amarillo, azul, marrón, morado, rosa, naranja y gris.
Berlin y Kay descubrieron que, en idiomas con menos de las once categorías de color máximas, los colores siguieron un patrón evolutivo específico. Este patrón es el siguiente:
Esta puede ser la razón por la cual la historia Beowulf solo contiene los colores negro, blanco y rojo. También puede ser por qué la Biblia no contiene el color azul. La Odisea de Homero contiene negro casi 200 veces y blanco unas 100 veces. El rojo aparece 15 veces, mientras que el amarillo y el verde aparecen solo 10 veces. ( Más información aquí )
Las diferencias entre idiomas también son interesantes: tenga en cuenta la profusión de distintas palabras de color utilizadas por el inglés frente al chino. Sin embargo, profundizar en estos idiomas muestra que cada uno usa el color de formas distintas. ( Más información )
En términos generales, la denominación, el uso y la agrupación de colores en los idiomas humanos es fascinante. Ahora, de vuelta al espectáculo.
8 bits (256) colores
La tecnología avanzada y las tablas de 256 colores preseleccionados estuvieron disponibles, como se muestra a continuación.
Usando estos anteriores, puede hacer un texto rosa de la siguiente manera:
Y haga un fondo azul temprano en la mañana usando
Y, por supuesto, puedes combinar estos:
Los colores de 8 bits se organizan así:
TODOS LOS COLORES
Ahora estamos viviendo en el futuro, y el espectro RGB completo está disponible usando:
Para que pueda poner texto rosado en un fondo marrón usando
El soporte para terminales de "color verdadero" se enumera aquí .
Gran parte de lo anterior proviene de la página de Wikipedia " Código de escape ANSI ".
Un guión útil para recordarte
Como a menudo estoy en la posición de tratar de recordar qué colores son qué, tengo un útil script llamado
~/bin/ansi_colours
:Esto imprime
fuente
echo -e "\033[38;05;34;1mHi"
yecho -e "\033[38;05;34m\033[1mHi"
trabajado para mí, a pesar de los efectos de fuente anti-aliasing causó la aparición del color para cambiar un poco menos de la negrita en el que el terminal estaba probando esto.\033[
códigos SGR ( ) que comienzan con 38 y 48 deben separarse con el que está reservado:
como un sub-separador, aunque esto no está completamente claro en las fuentes primarias en: ecma-international.org/publications/files/ECMA-ST/Ecma -048.pdf e itu.int/rec/… . Además, algunas interpretaciones olvidan el ID del espacio de color en los2
formularios (16M-color RGB) /3
(16M-color CMY) /4
(??? CMYK), por ejemplo, ¡debe ser\033[38:2::255:255:255m
para un primer plano de 16M de color blanco y no\033[38:2:255:255:255m
!Qué tal si:
ECMA-48 - Funciones de control para juegos de caracteres codificados, 5a edición (junio de 1991) - Un estándar que define los códigos de control de color, que aparentemente también es compatible con xterm.
SGR 38 y 48 fueron originalmente reservados por ECMA-48, pero se desarrollaron unos años más tarde en un estándar conjunto ITU, IEC e ISO, que viene en varias partes y que (entre muchas otras cosas) documenta el SGR 38/48 secuencias de control para color directo y color indexado :
Hay una columna para xterm en esta tabla en la página de Wikipedia para códigos de escape ANSI
fuente
Hay algunos más interesantes junto con información relacionada.
fuente
Está absolutamente relacionado con su terminal. TEV no apoyar abrir y cerrar, si se utiliza
gnome-terminal
,tilda
,guake
,terminator
,xfce4-terminal
y así sucesivamente de acuerdo con TEV, usted no tiene un abrir y cerrar.Si usa o quiere usar blink en VTE, debe usarlo
xterm
.Puede usar el comando infocmp con el nombre del terminal:
Por ejemplo :
fuente
Para aquellos que no obtienen resultados adecuados que no sean los lenguajes mencionados, si está utilizando C # para imprimir un texto en la ventana de la consola (terminal), debe reemplazar "\ 033" con "\ x1b ". En Visual Basic sería Chrw (27) .
fuente