Kolory w bash po przepuszczeniu przez mniej?


106

Kiedy mam zdefiniowane dircolors, życie jest pełne ... koloru.

Kiedy rura lspoprzez lessprzewijanie wokół tracę kolory.

Jakieś sugestie?

Odpowiedzi:


105

Najprawdopodobniej twój lsjest aliasowany ls --color=auto, co mówi, lsaby używać kolorów tylko wtedy, gdy jego wynik jest tty. Jeśli to zrobisz ls --color(co jest moralnie równoważne ls --color=always), wymusi to włączenie kolorów.

Możesz również zmienić swój alias, aby to zrobić, ale tak naprawdę nie nazwałbym tego dobrym pomysłem. Lepiej zrobić inny alias --color.

lessteż potrzebuje -R.


5
Dlaczego nie nazwałbyś tego dobrym aliasem na alias do ls --colorlub ls --color=always, jeśli o to chodzi?
j08lue

10
@ j08lue, jeśli przepłyniesz przez polecenie, które nie obsługuje kolorów, otrzymasz kilka śmieciowych znaków, które mogą zepsuć polecenie. Na przykład zrobiłem ls --color=always | lessi dostałem: ESC[01;32mexecute_once.shESC[0m(Wiem, że to jest stare i prawdopodobnie nie obchodzi cię to, ale dla przyszłych gości może się to przydać)
Ryan Amos

55

Wypróbuj mniej dzięki opcji -R takiej jak ta:

command | less -R

Działa to dla mnie w jednej linijce:

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

I tak też:

ls --color | less -R

Ale musisz nieco ulepszyć pierwotne wyjście (w tym przypadku wyjście ls) za pomocą parametru --color.


Dzięki, działa to również dla ack-grep. ack-grep my_string --color | mniej -R
igniteflow 30.01.2014

1
- kolor nie jest rozpoznawany: ls: niedozwolona opcja - - Uruchamianie bash na osx.
Scott Biggs

1
@ Scott Biggs: w OSX nie ma opcji --color; spróbuj ls -G

@ Lu-Chi, mimo -Gto brakuje kolorów
Iulian Onofrei

1
-ROpcja jest skrótem --RAW-CONTROL-CHARS.
Rory O'Kane
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.