Verwandte, aber nicht identische Ausgabe. Der Link handelt lessnur von.
Abel Cheung
Antworten:
360
Verwenden:
git diff --color=always | less -r
--color=alwaysGibt an, welche gitFarbcodes ausgegeben werden sollen, auch wenn es sich bei der Ausgabe um eine Pipe handelt (nicht um eine Tty). Und -rgibt es zu erzählen less, diese Farbcodes und andere Escape-Sequenzen zu interpretieren. Verwenden Sie -Rfür die ANSI - Farbcodes nur.
@ ripper234. Bei neueren Git-Versionen git config color.ui truesollte es ausreichen, eine farbige Ausgabe zu erhalten und bei langen Ausgaben automatisch einen Pager zu starten.
Stéphane Gimenez
4
Parallel zu diesem Q / A watch --color 'git diff --cached --color=always'und seinen Freunden können Sie einige zusätzliche Beeindruckung bringen.
Alois Mahdal
27
Verwenden Sie nicht less -Rbesser (oder export LESS=Rin /etc/profile)? Warum sollten Sie zulassen, dass alles andere als ANSI-Escape-Sequenzen in "Farbe" angezeigt werden? Außerdem steht auf der ManpageWarning: 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.
x-yuri am
5
Und wenn Sie vergessen haben, die -rOption anzugeben , können Sie an der lessEingabeaufforderung einfach "-r" eingeben. Dies funktioniert natürlich mit den meisten oder allen weniger Optionen (z. B. -iIgnorieren von Groß- und Kleinschreibung).
Haridsv
3
grep --color=alwaysfunktioniert genauso. Dies ist nicht Teil dieser Frage oder Antwort, aber ich bin hierher gekommen, weil ich über diese Frage gegoogelt habe.
Frank Bryce
57
Eine andere Möglichkeit wäre, Farben zu aktivieren und 'less -r' als Pager zu verwenden.
Bei Verwendung von Git 2.11 stellte ich fest, dass color.ui truedies bei einem Pager nicht funktioniert hat, color.ui alwaysjedoch. Dies hat sich möglicherweise geändert, seit die Antwort veröffentlicht wurde.
Tom Zych
1
Diese Option (um Farben zu aktivieren und standardmäßig 'less -r' als Pager zu verwenden) color.ui truefunktioniert mit Befehlen wie git -p diffund git -p status(wobei -pbedeutet, dass die gesamte Ausgabe standardmäßig in $ PAGER umgeleitet wird less) auch für ältere Versionen von git (zum Beispiel) Git 1.7.1). Aber Sie müssen immer noch color.ui always(was git anweist, Farbcodes auszugeben "auch wenn die Ausgabe eine Pipe ist (keine tty)"), um eine farbige Ausgabe zu erhalten, wenn Sie direkt git status | less -roder angeben git diff | less -r. Wenn Sie die Ausgabeumleitung explizit angeben, wird die Ausgabe nach dem Beenden des Pagers nicht angezeigt.
Kenichi
29
Verwenden Sie die Option -r( --raw-control-chars) zu weniger oder auch -R(nur ANSI-Escape-Sequenzen).
Eigentlich habe ich gerade getan alias less='less -r'. Irgendein Grund, es nicht zu tun?
Ripper234
3
@ ripper234: Ich erinnere mich vage, dass es Fälle geben kann, in denen die Verwendung, -rwenn sie nicht benötigt wird, zu Visualisierungsproblemen führen kann.
Enzotib
1
Zum Beispiel, wenn Sie ackmit Ihnen Pipe less -rverlieren einen Wagenrücklauf
New Alexandria
6
Sie können nur verwenden, \lesswenn die Visualisierung durcheinander kommt.
Brian Peterson
4
Ähm, Sie müssen nichts als Alias lessangeben, setzen Sie die $LESSUmgebungsvariable einfach auf den Satz von Flags, den Sie immer bereitstellen möchten less, z. B.export LESS='-MRq -z-2 -j2’
Ich weiß, dass dies alt ist und viele bereits die richtige Antwort gegeben haben, aber ich möchte hinzufügen, dass es immer besser ist, ANSI-Farben zu verwenden less -Rund nicht, less -rwenn Sie nur ANSI-Farben benötigen, da -rdies zu Problemen bei der Anzeige der Zeichen führen kann.
Aus dem Handbuch:
-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
less
nur von.Antworten:
Verwenden:
--color=always
Gibt an, welchegit
Farbcodes ausgegeben werden sollen, auch wenn es sich bei der Ausgabe um eine Pipe handelt (nicht um eine Tty). Und-r
gibt es zu erzählenless
, diese Farbcodes und andere Escape-Sequenzen zu interpretieren. Verwenden Sie-R
für die ANSI - Farbcodes nur.quelle
git config color.ui true
sollte es ausreichen, eine farbige Ausgabe zu erhalten und bei langen Ausgaben automatisch einen Pager zu starten.watch --color 'git diff --cached --color=always'
und seinen Freunden können Sie einige zusätzliche Beeindruckung bringen.less -R
besser (oderexport LESS=R
in/etc/profile
)? Warum sollten Sie zulassen, dass alles andere als ANSI-Escape-Sequenzen in "Farbe" angezeigt werden? Außerdem steht auf der ManpageWarning: 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
Option anzugeben , können Sie an derless
Eingabeaufforderung einfach "-r" eingeben. Dies funktioniert natürlich mit den meisten oder allen weniger Optionen (z. B.-i
Ignorieren von Groß- und Kleinschreibung).grep --color=always
funktioniert genauso. Dies ist nicht Teil dieser Frage oder Antwort, aber ich bin hierher gekommen, weil ich über diese Frage gegoogelt habe.Eine andere Möglichkeit wäre, Farben zu aktivieren und 'less -r' als Pager zu verwenden.
Das führt zu
in deiner ~ / .gitconfig
Weitere Informationen finden Sie im Pro Git-Buch .
quelle
color.ui true
dies bei einem Pager nicht funktioniert hat,color.ui always
jedoch. Dies hat sich möglicherweise geändert, seit die Antwort veröffentlicht wurde.color.ui true
funktioniert mit Befehlen wiegit -p diff
undgit -p status
(wobei-p
bedeutet, dass die gesamte Ausgabe standardmäßig in $ PAGER umgeleitet wirdless
) auch für ältere Versionen von git (zum Beispiel) Git 1.7.1). Aber Sie müssen immer nochcolor.ui always
(was git anweist, Farbcodes auszugeben "auch wenn die Ausgabe eine Pipe ist (keine tty)"), um eine farbige Ausgabe zu erhalten, wenn Sie direktgit status | less -r
oder angebengit diff | less -r
. Wenn Sie die Ausgabeumleitung explizit angeben, wird die Ausgabe nach dem Beenden des Pagers nicht angezeigt.Verwenden Sie die Option
-r
(--raw-control-chars
) zu weniger oder auch-R
(nur ANSI-Escape-Sequenzen).Ich habe einen Alias dafür in
~/.bashrc
quelle
alias less='less -r'
. Irgendein Grund, es nicht zu tun?-r
wenn sie nicht benötigt wird, zu Visualisierungsproblemen führen kann.ack
mit Ihnen Pipeless -r
verlieren einen Wagenrücklauf\less
wenn die Visualisierung durcheinander kommt.less
angeben, setzen Sie die$LESS
Umgebungsvariable einfach auf den Satz von Flags, den Sie immer bereitstellen möchtenless
, z. B.export LESS='-MRq -z-2 -j2’
Hat
tree
auch eine Option, um Farben zu erzwingen:Und so weiter für
ls
:quelle
Nur um eine weitere Version für "use less -r" hinzuzufügen:
benutze die Umgebungsvariable LESS mit dem Wert r (oder füge r zu dem hinzu, was es bereits ist)
zB wie ich es in meiner .bashrc verwende
(Das X verhindert, dass der Bildschirm beim Verlassen von weniger gelöscht wird.)
quelle
Falls jemand Interesse daran hat, einen Json mit zu pagen,
jq
undless
dies kann erreicht werden mit:z.B
Quelle: https://github.com/stedolan/jq/issues/764#issuecomment-95355331
quelle
Ich weiß, dass dies alt ist und viele bereits die richtige Antwort gegeben haben, aber ich möchte hinzufügen, dass es immer besser ist, ANSI-Farben zu verwenden
less -R
und nicht,less -r
wenn Sie nur ANSI-Farben benötigen, da-r
dies zu Problemen bei der Anzeige der Zeichen führen kann.Aus dem Handbuch:
quelle