Kann ich weniger bekommen, um seine Ausgabe nicht zu monochromen?
ZB ist die Ausgabe von git difffarbig, aber git diff | lessnicht.
lessnur von.
Kann ich weniger bekommen, um seine Ausgabe nicht zu monochromen?
ZB ist die Ausgabe von git difffarbig, aber git diff | lessnicht.
lessnur von.
Antworten:
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.
git config color.ui truesollte 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 -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.
-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).
grep --color=alwaysfunktioniert 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.
git config --global color.ui true
git config --global core.pager 'less -r'
Das führt zu
[color]
ui = true
[core]
pager = less -r
in deiner ~ / .gitconfig
Weitere Informationen finden Sie im Pro Git-Buch .
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.
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.
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
alias rless='less -r'
alias less='less -r'. Irgendein Grund, es nicht zu tun?
-rwenn sie nicht benötigt wird, zu Visualisierungsproblemen führen kann.
ackmit Ihnen Pipe less -rverlieren einen Wagenrücklauf
\lesswenn die Visualisierung durcheinander kommt.
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’
Hat treeauch eine Option, um Farben zu erzwingen:
tree -C | less -r
Und so weiter für ls:
ls -lR --color | less -r
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
export LESS=-Xr
(Das X verhindert, dass der Bildschirm beim Verlassen von weniger gelöscht wird.)
Falls jemand Interesse daran hat, einen Json mit zu pagen, jqund lessdies kann erreicht werden mit:
jq -C <jq args> file.json | less -R
z.B
jq -C . file.json | less -R
Quelle: https://github.com/stedolan/jq/issues/764#issuecomment-95355331
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