Não é less
que precisa ser alterado. A saída de seus outros programas está sendo redirecionada para um pipe. Esses programas detectam que sua saída não está sendo enviada para um tty e desativam sua coloração. Você está preso a ter que fazer algo especial com os programas de origem para colorir sua saída mesmo quando redirecionado para um pipe.
Acho que tenho uma solução para os programas que não suportam uma opção --color = always. O comando unbuffer
cria um pty e envia a saída de seu programa de argumento para esse pty, portanto, o programa de argumento acha que sua saída está indo para um tty e colore-o.
Eu tentei o seguinte como um experimento e funcionou. Eu não conseguia pensar em nenhum programa que colorisse sua saída por padrão.
$ unbuffer ls --color=auto | cat
Além disso, você não precisa usar a opção -r
com less
para exibir a cor? Eu também tentei isso:
$ unbuffer ls --color=auto | less -r