Imprima um padrão de teste de 256 cores no terminal

Imprima um padrão de teste de 256 cores no terminal

Como imprimo um padrão de teste de 256 cores no meu terminal?

Quero verificar se meu terminal suporta corretamente 256 cores.

Responder1

Padrão de teste de 256 cores

Para obter a imagem abaixo, use:

curl -s https://gist.githubusercontent.com/HaleTom/89ffe32783f89f403bba96bd7bcd1263/raw/e50a28ec54188d2413518788de6c6367ffcea4f7/print256colours.sh | bash

Padrão de teste de 256 cores

Oessência bash/ zshcódigoéshellchecklimpo e também suporta "Olha, mãe, sem subprocessos!".


Alternativamente, para uma bashrápida:

for i in {0..255} ; do
    printf "\x1b[48;5;%sm%3d\e[0m " "$i" "$i"
    if (( i == 15 )) || (( i > 15 )) && (( (i-15) % 6 == 0 )); then
        printf "\n";
    fi
done

Para um exagero total, o avô do lote é terminal-colors, umRoteiro de 572 linhascom váriosformatos de saída.

Você também podeimprimir um padrão de teste em cores reais (24 bits).

Responder2

Achei umbom script Python para isso no GitHubescrito por Justin Abrahms que também imprime os códigos hexadecimais das cores.

Baixe o script para o diretório de trabalho atual

wget https://gist.githubusercontent.com/justinabrahms/1047767/raw/a79218b6ca8c1c04856968d2d202510a4f7ec215/colortest.py

dê permissão de execução

chmod +x colortest.py

Executá-lo:

./colortest.py

Aqui está o script completo em caso de link-rot:

#!/usr/bin/env python
# Ported to Python from http://www.vim.org/scripts/script.php?script_id=1349

print "Color indexes should be drawn in bold text of the same color."
print

colored = [0] + [0x5f + 40 * n for n in range(0, 5)]
colored_palette = [
    "%02x/%02x/%02x" % (r, g, b) 
    for r in colored
    for g in colored
    for b in colored
]

grayscale = [0x08 + 10 * n for n in range(0, 24)]
grayscale_palette = [
    "%02x/%02x/%02x" % (a, a, a)
    for a in grayscale 
]

normal = "\033[38;5;%sm" 
bold = "\033[1;38;5;%sm"
reset = "\033[0m"

for (i, color) in enumerate(colored_palette + grayscale_palette, 16):
    index = (bold + "%4s" + reset) % (i, str(i) + ':')
    hex   = (normal + "%s" + reset) % (i, color)
    newline = '\n' if i % 6 == 3 else ''
    print index, hex, newline, 

Responder3

Enquanto nãobastanteum "padrão de teste", eu tenhoseletor de cores xterm:

captura de tela

Responder4

Uma linha

cor de fundo

for i in {0..255}; do printf '\e[48;5;%dm%3d ' $i $i; (((i+3) % 18)) || printf '\e[0m\n'; done

cor do primeiro plano

for i in {0..255}; do printf '\e[38;5;%dm%3d ' $i $i; (((i+3) % 18)) || printf '\e[0m\n'; done

informação relacionada