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
Oessência bash
/ zsh
códigoéshellcheck
limpo e também suporta "Olha, mãe, sem subprocessos!".
Alternativamente, para uma bash
rá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:
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