Posso ottenere di meno per non monocromare il suo output?
Ad esempio, l'output da git diffè colorato, ma git diff | lessnon lo è.
lesssolo.
Posso ottenere di meno per non monocromare il suo output?
Ad esempio, l'output da git diffè colorato, ma git diff | lessnon lo è.
lesssolo.
Risposte:
Uso:
git diff --color=always | less -r
--color=alwaysè lì per dire gitai codici colore di output anche se l'output è una pipe (non una tty). Ed -rè lì per dire lessdi interpretare quei codici colore e altre sequenze di escape. Utilizzare solo -Rper codici colore ANSI.
git config color.ui truedovrebbe 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 -Rmeglio (o export LESS=Rdentro /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.
-ropzione, puoi semplicemente digitare "-r" al lessprompt. Questo ovviamente funziona con la maggior parte o tutte le opzioni meno (ad esempio, -iper attivare l'ignorecase).
grep --color=alwaysfunziona 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 truenon funzionava con un cercapersone, ma funzionava color.ui always. Questo potrebbe essere cambiato da quando è stata pubblicata la risposta.
color.ui truefunziona con comandi come git -p diffe git -p status(dove -psignifica 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 -ro 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?
-rquando non necessario può portare a problemi di visualizzazione.
ackcon less -rte perdi un ritorno in carrozza
\lessse la visualizzazione è incasinata.
less$LESSlessexport LESS='-MRq -z-2 -j2’
Ha anche treeun'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 jqe lesspuò 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 -Re non less -rse hai solo bisogno di colori ANSI, in quanto -rpotrebbero 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