Цвета в bash после прокачки меньше?

106

Когда я определил дирколор, жизнь полна ... цвета.

Когда я труба lsчерез lessпрокручивать я теряю цвета.

Какие-либо предложения?

MathewC
источник

Ответы:

105

Скорее всего, у вас lsесть псевдоним ls --color=auto, который говорит lsиспользовать цвета только тогда, когда его вывод tty. Если вы сделаете ls --color(что морально эквивалентно ls --color=always), это заставит его включить цвета.

Вы можете также изменить свой псевдоним, чтобы сделать это, но я бы не назвал это хорошей идеей. Лучше сделать другой псевдоним с --color.

less-Rтоже нужно .

хаос
источник
5
Почему бы вам не назвать это хорошей идеей для псевдонима ls --colorили ls --color=always, если на то пошло?
j08lue
10
@ j08lue, если вы передадите команду, которая не обрабатывает цвет, вы получите несколько ненужных символов, которые могут испортить команду. Например, я сделал ls --color=always | lessи получил: ESC[01;32mexecute_once.shESC[0m(Я знаю, что это старый, и вы, вероятно, не волнует, но для будущих посетителей, это может быть полезно)
Райан Амос
55

Попробуйте меньше с опцией -R вот так:

command | less -R

Это работает для меня в одной строке, как это:

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

И так тоже:

ls --color | less -R

Но вам нужно немного настроить первичный вывод (в данном случае вывод ls) с параметром --color.

wzzrd
источник
Спасибо, это также работает для ack-grep. ack-grep my_string --color | менее -R
igniteflow
1
- color не распознается: ls: недопустимая опция - - Запуск bash на osx.
Скотт Биггс
1
@ Скотт Биггс: в OSX нет --color; попробуйте ls -G
@ Лу-Чи, Даже при том -G, что цвета отсутствуют
Юлиан Онофрей
1
-RВариант является аббревиатурой --RAW-CONTROL-CHARS.
Рори О'Кейн