Czy mogę uzyskać mniej, aby nie monochromatycznie generować?
Np. Wyjście z git diff
jest kolorowe, ale git diff | less
nie jest.
less
tylko.
Czy mogę uzyskać mniej, aby nie monochromatycznie generować?
Np. Wyjście z git diff
jest kolorowe, ale git diff | less
nie jest.
less
tylko.
Odpowiedzi:
Posługiwać się:
git diff --color=always | less -r
--color=always
jest po to, aby powiedzieć, git
aby wyświetlać kody kolorów, nawet jeśli wyjście jest potokiem (a nie tty). I -r
jest po to, less
aby zinterpretować te kody kolorów i inne sekwencje specjalne. Używaj tylko -R
dla kodów kolorów ANSI.
git config color.ui true
powinno wystarczyć, aby uzyskać kolorowe wydruki i automatycznie uruchomić pager dla długich wydruków .
watch --color 'git diff --cached --color=always'
a jego przyjaciele mogą przynieść ci dodatkową niesamowitość.
less -R
lepszego (lub export LESS=R
w /etc/profile
)? Dlaczego miałbyś pozwolić, aby wyświetlał cokolwiek innego niż sekwencje specjalne ANSI „kolorowe”? Ponadto strona podręcznika mówiWarning: when the -r option is used, less cannot keep track of the actual appearance of the screen (since this depends on how the screen responds to each type of control character). Thus, various display problems may result, such as long lines being split in the wrong place.
-r
opcję, możesz po prostu wpisać „-r” w less
wierszu polecenia. To oczywiście działa z większością lub wszystkimi mniejszymi opcjami (tj., -i
Aby włączyć ignorowanie).
grep --color=always
działa w ten sam sposób. To nie jest część tego pytania ani odpowiedzi, ale dotarłem tutaj z Google'a na temat tego pytania, więc jest.
Inną opcją byłoby włączenie kolorów i użycie „mniej -r” jako pager.
git config --global color.ui true
git config --global core.pager 'less -r'
To skutkuje
[color]
ui = true
[core]
pager = less -r
w twoim ~ / .gitconfig
Aby uzyskać więcej informacji, zobacz książkę Pro Git .
color.ui true
nie działało to z pageriem, ale działało color.ui always
. To mogło się zmienić od czasu opublikowania odpowiedzi.
color.ui true
działa z komendami takimi jak git -p diff
i git -p status
(gdzie -p
oznacza, że wszystkie dane wyjściowe są przesyłane do $ PAGER, domyślnie to jest less
) nawet dla dość starych wersji git (na przykład , Git 1.7.1). Ale nadal potrzebujesz color.ui always
(co mówi gitowi, aby wypisał kody kolorów „nawet jeśli wyjście jest potokiem (nie tty)”), aby uzyskać kolorowe wydruki, gdy bezpośrednio określisz git status | less -r
lub git diff | less -r
. Gdy jawnie określisz przekierowanie wyjścia, nie zobaczysz wyniku po wyjściu z pagera.
Użyj opcji -r
( --raw-control-chars
), aby zmniejszyć, lub też -R
(tylko sekwencje specjalne ANSI).
Mam na to alias ~/.bashrc
alias rless='less -r'
alias less='less -r'
. Jest jakiś powód, aby tego nie robić?
-r
gdy nie jest potrzebne, może prowadzić do problemu z wizualizacją.
ack
ze less -r
sobą, tracisz zwrot karetki
\less
jeśli wizualizacja się nie powiedzie.
less
niczego $LESS
less
export LESS='-MRq -z-2 -j2’
Również tree
ma możliwość wymuszenia na kolory:
tree -C | less -r
I tak dalej dla ls
:
ls -lR --color | less -r
Aby dodać kolejną wersję na „use less -r”:
użyj zmiennej środowiskowej LESS z wartością r (lub dodaj r do tego, co już jest)
np. kiedy używam go w moim .bashrc
export LESS=-Xr
(X zatrzymuje czyszczenie ekranu przy wychodzeniu mniej)
W przypadku, gdy ktoś jest zainteresowany stronicowaniem JSON jq
i less
można to osiągnąć za pomocą:
jq -C <jq args> file.json | less -R
na przykład
jq -C . file.json | less -R
Źródło: https://github.com/stedolan/jq/issues/764#issuecomment-95355331
Wiem, że to stare i wielu już udzieliło właściwej odpowiedzi, ale chciałbym dodać, że zawsze lepiej jest używać, less -R
a nie, less -r
jeśli potrzebujesz tylko kolorów ANSI, ponieważ -r
mogą to powodować problemy z wyświetlaniem znaków.
Z instrukcji:
-r or --raw-control-chars
Causes "raw" control characters to be displayed. The default
is to display control characters using the caret notation; for
example, a control-A (octal 001) is displayed as "^A". Warn‐
ing: when the -r option is used, less cannot keep track of the
actual appearance of the screen (since this depends on how the
screen responds to each type of control character). Thus, var‐
ious display problems may result, such as long lines being
split in the wrong place.
-R or --RAW-CONTROL-CHARS
Like -r, but only ANSI "color" escape sequences are output in
"raw" form. Unlike -r, the screen appearance is maintained
correctly in most cases. ANSI "color" escape sequences are
sequences of the form:
ESC [ ... m