Cores na festança após passar por menos?

106

Quando tenho cores definidas, a vida é cheia de ... cores.

Quando lsatravesso lesspara rolar, perco as cores.

Alguma sugestão?

MathewC
fonte

Respostas:

105

Provavelmente, você lsestá aliasado ls --color=auto, o que diz lspara usar cores apenas quando a saída é um tty. Se você o fizer ls --color(o que é moralmente equivalente a ls --color=always), isso forçará a ativar as cores.

Você também pode alterar seu alias para fazer isso, mas eu realmente não consideraria isso uma boa ideia. Melhor criar um alias diferente --color.

lessnecessidades -Rtambém.

caos
fonte
5
Por que você não chamaria uma boa idéia de alias ls ls --colorou ls --color=always, nesse caso?
J8lue
10
@ j08lue Se você passar por um comando que não lida com cores, você obtém alguns caracteres indesejados que podem atrapalhar o comando. Por exemplo, eu fiz ls --color=always | lesse tenho: ESC[01;32mexecute_once.shESC[0m(Eu sei que isso é velho e você provavelmente não se importam, mas para os futuros visitantes, isso pode ser útil)
Ryan Amos
55

Tente menos com a opção -R como esta:

command | less -R

Isso funciona para mim em uma linha como esta:

ls -la | grep --color=always bash | less -r

E assim também:

ls --color | less -R

Mas você precisa ajustar a saída primária (a saída de ls neste caso) um pouco com o parâmetro --color.

wzzrd
fonte
Obrigado, isso também funciona para o ack-grep. ack-grep my_string --color | less -R
igniteflow 30/01
1
--color não é reconhecido: ls: opção ilegal - - Executando o bash no osx.
Scott Biggs
1
@ Scott Biggs: no OSX não há --color; Tente ls -G
@ Lu-Chi, mesmo com -Gas cores estão faltando
Iulian Onofrei
1
A -Ropção é curta --RAW-CONTROL-CHARS.
Rory O'Kane 28/03