Como ver JSON colorido com jq e less

eu executo esse comando e perco as cores, tem alguma solução? jq . map.json | less

Sim. O problema é que o jq só emite cores quando detecta que está escrevendo para um terminal. Ao fazer pipe para o less, ele desabilita as cores.

Use a opção -C (--color-output) para forçar as cores:

jq -C . map.json | less -R

Onde:

  • -C força o jq a gerar códigos ANSI de cor.
  • less -R permite que o less interprete e exiba esses códigos de cor.

Se quiser tornar isso padrão, pode criar um alias:

alias jqc='jq -C'

e usar:

jqc . map.json | less -R

Outra alternativa é configurar a variável:

export JQ_COLORS='1;37:0;37:0;37:0;32:1;37:1;37'

mas mesmo assim você continuará precisando do -C quando usar pipes.

Para arquivos JSON grandes, o padrão que a maioria das pessoas usa é:

jq -C . map.json | less -R

ou até:

cat map.json | jq -C . | less -R

embora o cat seja desnecessário nesse caso.