Couleurs en bash après avoir traversé moins?

106

Quand j'ai dircolors défini la vie est pleine de ... couleur.

Lorsque je lspasse lessau défilement, je perds les couleurs.

Aucune suggestion?

MathewC
la source

Réponses:

105

Il est fort probable que vous lsayez un alias ls --color=auto, ce qui vous oblige lsà n'utiliser des couleurs que lorsque sa sortie est un tty. Si vous le faites ls --color(ce qui est moralement équivalent à ls --color=always), cela l'obligera à activer les couleurs.

Vous pouvez également changer votre pseudonyme pour le faire, mais je n'appellerais pas cela une bonne idée. Mieux vaut faire un alias différent avec --color.

lessbesoins -R, aussi.

le chaos
la source
5
Pourquoi ne diriez-vous pas que c’est une bonne idée d’alias ls to ls --colorou ls --color=alwaysd’ailleurs?
j08lue
10
@ j08lue Si vous dirigez une commande qui ne gère pas la couleur, vous obtenez des caractères indésirables qui peuvent gâcher la commande. Par exemple, je l'ai fait ls --color=always | lesset j'ai: ESC[01;32mexecute_once.shESC[0m(je sais que c'est vieux et que vous ne vous en souciez probablement pas, mais cela pourrait être utile pour les futurs visiteurs)
Ryan Amos Le
55

Essayez moins avec l'option -R comme ceci:

command | less -R

Cela fonctionne pour moi dans un one-liner comme ceci:

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

Et comme ça aussi:

ls --color | less -R

Mais vous devez modifier légèrement la sortie primaire (la sortie de ls dans ce cas) avec le paramètre --color.

wzzrd
la source
Merci, cela fonctionne également pour ack-grep. ack-grep my_string --color | moins -R
Igniteflow
1
--color n'est pas reconnu: ls: option non autorisée - - Exécuter bash sur osx.
Scott Biggs
1
@Scott Biggs: dans OSX, il n'y a pas de - couleur; essayez ls -G
@ Lu-Chi, Même avec -G, les couleurs manquent
Iulian Onofrei
1
L' -Roption est courte pour --RAW-CONTROL-CHARS.
Rory O'Kane