it-swarm.it

Può trattenere meno l'output colorato?

Posso ottenere di meno per non monocromare il suo output?

Ad esempio, l'output di git diff è colorato, ma git diff | less non è.

364
ripper234

Uso:

git diff --color=always | less -r

--color=always è lì per dire a git di emettere i codici colore anche se l'output è una pipe (non una tty). E -r è lì per dire a less di interpretare quei codici colore e altre sequenze di escape. Uso -R solo per codici colore ANSI.

435

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 Pro Git book .

Valori possibili per color.ui può essere trovato nella pagina man di git-config. L'output di man git-config | grep "color.ui$" -A8 è

color.ui
    This variable determines the default value for variables such as color.diff and
    color.grep that control the use of color per command family. Its scope will expand as
    more commands learn configuration to set a default for the --color option. Set it to
    false or never if you prefer Git commands not to use color unless enabled explicitly
    with some other configuration or the --color option. Set it to always if you want all
    output not intended for machine consumption to use color, to true or auto (this is the
    default since Git 1.8.4) if you want such output to use color when written to the
    terminal.

Uso -r (--raw-control-chars) opzione less, o anche -R (solo sequenze di escape ANSI).

Ho un alias per questo in ~/.bashrc

alias rless='less -r'
29
enzotib

Inoltre tree ha un'opzione per forzare i colori su:

tree -C | less -r

E così via per ls:

ls -lR --color | less -r
17

Solo per aggiungere un'altra versione su "usa less -r ":

Usa la variabile di ambiente LESS con il valore r (o aggiungi r a qualunque cosa sia già)

Ad esempio, mentre lo uso nel mio .bashrc:

export LESS=-Xr

La X si ferma lo schermo si cancella quando si esce di meno.

11
MortenSickel

Nel caso in cui qualcuno sia interessato a chiamare un json con jq e less, è possibile ottenerlo utilizzando:

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

9
dimid

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 bisogno solo dei colori ANSI come -rpossono 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
6
Naheel