Na maioria dos terminais, é possível colorir a saída usando a \033
sequência de escape ANSI.
Estou procurando uma lista de todas as cores e opções suportadas (como brilhante e intermitente).
Como provavelmente existem diferenças entre os terminais que os suportam, estou interessado principalmente em sequências suportadas por terminais compatíveis com xterm.
colors
terminal
ansi-escape
ThiefMaster
fonte
fonte
Respostas:
As seqüências de escape ANSI que você está procurando são o subconjunto Select Graphic Rendition. Todos estes têm a forma
onde
XXX
é uma série de parâmetros separados por ponto e vírgula.Para dizer, deixe o texto em vermelho, negrito e sublinhado (discutiremos muitas outras opções abaixo) em C, você pode escrever:
Em C ++ você usaria
No Python3 você usaria
e no Bash você usaria
onde a primeira parte torna o texto vermelho (
31
), negrito (1
), sublinhado (4
) e a última parte limpa tudo isso (0
).Conforme descrito na tabela abaixo, há um grande número de propriedades de texto que você pode definir, como negrito, fonte, sublinhado, etc. (Não é tolice o StackOverflow não permitir que você coloque tabelas adequadas nas respostas?)
Efeitos de fonte
Cores de 2 bits
Você já tem isso!
Cores de 4 bits
Os padrões que implementam as cores dos terminais começaram com opções limitadas (4 bits). A tabela abaixo lista os valores RGB das cores de plano de fundo e primeiro plano usadas para isso por uma variedade de emuladores de terminal:
Usando o exposto, você pode criar texto em vermelho sobre um fundo verde (mas por quê?) Usando:
11 cores (um interlúdio)
Em seu livro "Termos básicos de cores: universalidade e evolução", Brent Berlin e Paul Kay usaram dados coletados em vinte idiomas diferentes de várias famílias de idiomas para identificar onze possíveis categorias básicas de cores: branco, preto, vermelho, verde, amarelo, azul, marrom, roxo, rosa, laranja e cinza.
Berlin e Kay descobriram que, em idiomas com menos do que o máximo de onze categorias de cores, as cores seguiam um padrão evolutivo específico. Esse padrão é o seguinte:
Talvez por isso a história Beowulf contenha apenas as cores preto, branco e vermelho. Também pode ser por isso que a Bíblia não contém a cor azul. A Odisséia de Homero contém preto quase 200 vezes e branco cerca de 100 vezes. Vermelho aparece 15 vezes, enquanto amarelo e verde aparecem apenas 10 vezes. ( Mais informações aqui )
As diferenças entre os idiomas também são interessantes: observe a profusão de palavras de cores distintas usadas pelo inglês x chinês. No entanto, se aprofundar nesses idiomas mostra que cada um usa cores de maneiras distintas. ( Mais informações )
De um modo geral, o nome, o uso e o agrupamento de cores nas línguas humanas são fascinantes. Agora, de volta ao show.
Cores de 8 bits (256)
Tecnologia avançada, e tabelas de 256 cores pré-selecionadas ficaram disponíveis, como mostrado abaixo.
Usando estes itens acima, você pode criar texto rosa da seguinte forma:
E faça um fundo azul de manhã cedo usando
E, claro, você pode combinar estes:
As cores de 8 bits são organizadas da seguinte forma:
TODAS AS CORES
Agora estamos vivendo no futuro, e todo o espectro RGB está disponível usando:
Assim, você pode colocar texto rosado em um fundo marrom usando
O suporte para terminais "true color" está listado aqui .
Grande parte dos itens acima é extraída da página da Wikipedia " Código de escape ANSI ".
Um script útil para se lembrar
Como muitas vezes estou na posição de tentar lembrar o que são as cores, tenho um script útil chamado
~/bin/ansi_colours
::Isso imprime
fonte
echo -e "\033[38;05;34;1mHi"
eecho -e "\033[38;05;34m\033[1mHi"
funcionaram para mim, embora os efeitos de fonte anti-aliasing tenham causado a aparência da cor mudar ligeiramente sob negrito no terminal em que eu estava testando isso.\033[
códigos SGR ( ) iniciados com 38 e 48 devem ser separados pelo reservado de outra forma:
como um sub-separador, embora isso não esteja totalmente claro nas fontes principais em: ecma-international.org/publications/files/ECMA-ST/Ecma -048.pdf e itu.int/rec/… . Além disso, algumas interpretações esquecem o Id do espaço de cores nas formas2
(16M cores RGB) /3
(16M cores CMY) /4
(??? CMYK) - por exemplo, deve ser\033[38:2::255:255:255m
para um primeiro plano branco de 16M e não\033[38:2:255:255:255m
!E se:
ECMA-48 - Funções de controle para conjuntos de caracteres codificados, 5ª edição (junho de 1991) - Um padrão que define os códigos de controle de cores, que aparentemente também é suportado pelo xterm.
Os SGR 38 e 48 foram originalmente reservados pela ECMA-48, mas foram desenvolvidos alguns anos depois em uma norma conjunta ITU, IEC e ISO, que vem em várias partes e que (entre muitas outras coisas) documenta a SGR 38/48 seqüências de controle para cores diretas e cores indexadas :
Há uma coluna para xterm nesta tabela na página da Wikipedia para códigos de escape ANSI
fonte
Existem alguns mais interessantes, juntamente com informações relacionadas.
fonte
Está absolutamente relacionado ao seu terminal. O TEV não suporta piscar, se você usar
gnome-terminal
,tilda
,guake
,terminator
,xfce4-terminal
e assim por diante de acordo com TEV, Você não tem piscar.Se você usa ou deseja usar o piscar no VTE, é necessário usá-lo
xterm
.Você pode usar o comando infocmp com o nome do terminal:
Por exemplo :
fonte
Para aqueles que não obtêm resultados adequados, além dos idiomas mencionados, se você estiver usando C # para imprimir um texto na janela do console (terminal), substitua "\ 033" por "\ x1b ". No Visual Basic, seria Chrw (27) .
fonte