Como exibir cor por comando de tubulação para menos?

0

Quando eu uso:

msgattrib --untranslated pl.po

para ver strings não traduzidas do arquivo po Eu tenho strings em cores, mas não quando uso:

msgattrib --untranslated pl.po | less
    
por jcubic 17.08.2017 / 18:53

2 respostas

2

msgattrib exibe cores somente se executadas a partir do terminal real. Você pode usar o comando unbuffer que faz parte de expect para fazer msgattrib pensar que ele é executado a partir do terminal real e usar a opção -r para manipular os escapes ANSI em less :

unbuffer msgattrib --untranslated pl.po | less -r

Você pode fazer isso em qualquer comando que produz cores (códigos de escape ANSI) com base na existência de tty.

    
por 17.08.2017 / 18:53
1

Na página menos man:

-R or --RAW-CONTROL-CHARS
          Like -r, but only ANSI "color" escape sequences are output in "raw" form.  Unlike -r, the screen appearance is maintained correctly in most  cases.

A maneira mais simples de ter isso habilitado o tempo todo é definir a variável de ambiente LESS no script .profile ou .login . Eu uso os dois -R e -X (o que impede que a tela seja limpa quando menos saídas).

    
por 18.08.2017 / 10:45

Tags