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


106

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

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

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

Ответы:


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.


Спасибо, это также работает для 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.
Рори О'Кейн
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.