Posso ottenere di meno per non monocromare il suo output?
Ad esempio, l'output da git diff
è colorato, ma git diff | less
non lo è.
less
solo.
Posso ottenere di meno per non monocromare il suo output?
Ad esempio, l'output da git diff
è colorato, ma git diff | less
non lo è.
less
solo.
Risposte:
Uso:
git diff --color=always | less -r
--color=always
è lì per dire git
ai codici colore di output anche se l'output è una pipe (non una tty). Ed -r
è lì per dire less
di interpretare quei codici colore e altre sequenze di escape. Utilizzare solo -R
per codici colore ANSI.
git config color.ui true
dovrebbe essere sufficiente per ottenere un output colorato e per eseguire automaticamente un cercapersone per output lunghi.
watch --color 'git diff --cached --color=always'
e i suoi amici possono portarti qualche ulteriore meraviglia.
less -R
meglio (o export LESS=R
dentro /etc/profile
)? Perché dovresti permettergli di visualizzare qualsiasi cosa tranne le sequenze di escape "color" ANSI? Inoltre, la pagina man diceWarning: 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
opzione, puoi semplicemente digitare "-r" al less
prompt. Questo ovviamente funziona con la maggior parte o tutte le opzioni meno (ad esempio, -i
per attivare l'ignorecase).
grep --color=always
funziona allo stesso modo. Questo non fa parte di questa domanda o risposta, ma sono arrivato qui da google su quella domanda, quindi eccola.
Un'altra opzione sarebbe quella di abilitare i colori e usare 'less -r' come cercapersone.
git config --global color.ui true
git config --global core.pager 'less -r'
Questo risulta in
[color]
ui = true
[core]
pager = less -r
nel tuo ~ / .gitconfig
Per ulteriori informazioni, consultare il libro Pro Git .
color.ui true
non funzionava con un cercapersone, ma funzionava color.ui always
. Questo potrebbe essere cambiato da quando è stata pubblicata la risposta.
color.ui true
funziona con comandi come git -p diff
e git -p status
(dove -p
significa reindirizzare tutto l'output in $ PAGER, di default è less
) anche per versioni piuttosto vecchie di git (per esempio , Git 1.7.1). Ma hai ancora bisogno color.ui always
(che dice a git di produrre codici colore "anche se l'output è una pipe (non una tty)") per ottenere output colorati quando specifichi direttamente git status | less -r
o git diff | less -r
. Quando si specifica esplicitamente il reindirizzamento dell'output, non si vedrà l'output dopo essere uscito dal cercapersone.
Utilizzare l' opzione -r
( --raw-control-chars
) per less o anche -R
(solo sequenze di escape ANSI).
Ho un alias per questo in ~/.bashrc
alias rless='less -r'
alias less='less -r'
. Qualche motivo per non farlo?
-r
quando non necessario può portare a problemi di visualizzazione.
ack
con less -r
te perdi un ritorno in carrozza
\less
se la visualizzazione è incasinata.
less
$LESS
less
export LESS='-MRq -z-2 -j2’
Ha anche tree
un'opzione per forzare i colori su:
tree -C | less -r
E così via per ls
:
ls -lR --color | less -r
Solo per aggiungere un'altra versione su "usa meno -r":
usa la variabile d'ambiente LESS con il valore r (o aggiungi r a qualunque cosa sia già)
ad esempio, come lo uso nel mio .bashrc
export LESS=-Xr
(La X interrompe la cancellazione dello schermo quando si esce di meno)
Nel caso in cui qualcuno sia interessato a chiamare un json con jq
e less
può essere raggiunto usando:
jq -C <jq args> file.json | less -R
per esempio
jq -C . file.json | less -R
Fonte: https://github.com/stedolan/jq/issues/764#issuecomment-95355331
So che questo è vecchio e molti hanno già fornito la risposta giusta, ma vorrei aggiungere che è sempre meglio usare less -R
e non less -r
se hai solo bisogno di colori ANSI, in quanto -r
potrebbero causare problemi nella visualizzazione dei caratteri.
Dal manuale:
-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