Relatif mais pas identique isssue. Le lien est à propos lessseulement.
Abel Cheung
Réponses:
361
Utilisation:
git diff --color=always | less -r
--color=alwaysy a-t-il à dire gitpour sortir les codes de couleur même si la sortie est un tuyau (pas un tty). Et -rest-il là pour lessinterpréter ces codes de couleurs et autres séquences d'échappement? Utilisez -Runiquement pour les codes de couleur ANSI.
@ ripper234. Avec les gits récents, cela git config color.ui truedevrait être suffisant pour obtenir une sortie colorée, et pour lancer automatiquement un pager pour les sorties longues.
Stéphane Gimenez
4
Parallèlement à cette Q / A, watch --color 'git diff --cached --color=always'ses amis peuvent vous apporter un peu plus de génialité.
Alois Mahdal
27
N’utilise-t-il pas less -Rmieux (ou export LESS=Rdans /etc/profile)? Pourquoi lui permettriez-vous d'afficher autre chose que des séquences d'échappement "couleur" ANSI? En outre, la page de manuel indiqueWarning: 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
5
Et si vous avez oublié de spécifier une -roption, vous pouvez simplement taper "-r" à l' lessinvite. Cela fonctionne bien sûr avec la plupart ou la totalité des options (c.- -ià- d., Activer ignorecase).
haridsv
3
grep --color=alwaysfonctionne de la même manière. Cela ne fait pas partie de cette question ou de cette réponse, mais je suis arrivé ici en cherchant sur Google pour la trouver.
Frank Bryce
57
Une autre option serait d’activer les couleurs et d’utiliser «less -r» comme téléavertisseur.
En utilisant Git 2.11, j'ai constaté que color.ui truecela ne fonctionnait pas avec un pager, mais que ça fonctionnait color.ui always. Cela a peut-être changé depuis la publication de la réponse.
Tom Zych le
1
Cette option (pour activer les couleurs et utiliser "less -r" comme pageur par défaut) fonctionne avec color.ui trueles commandes telles que git -p diffet git -p status(où -psignifie diriger toute la sortie vers $ PAGER, par défaut, elle less), même pour les anciennes versions de git (par exemple , Git 1.7.1). Mais vous avez toujours besoin color.ui always(ce qui indique à git de générer des codes de couleur "même si la sortie est un tube (pas un tty)") pour obtenir une sortie colorée lorsque vous spécifiez directement git status | less -rou git diff | less -r. Lorsque vous spécifiez explicitement la redirection de sortie, vous ne verrez pas la sortie après avoir quitté le pager.
Kenichi
29
Utilisez l' option -r( --raw-control-chars) pour diminuer ou également -R(uniquement les séquences d'échappement ANSI).
En fait je viens de le faire alias less='less -r'. Aucune raison de ne pas?
ripper234
3
@ ripper234: Je me souviens vaguement qu'il pourrait y avoir des cas où l'utilisation -rlorsque non nécessaire peut conduire à un problème de visualisation.
enzotib
1
Par exemple, lorsque vous jouez ackavec less -rvous perdez un retour de voiture
Nouvelle Alexandrie le
6
Vous pouvez simplement utiliser \lesssi la visualisation échoue.
Brian Peterson
4
Euh, vous ne devez alias lessrien, il vous suffit de définir la $LESSvariable d'environnement sur l'ensemble des drapeaux que vous souhaitez toujours fournir less, par exempleexport LESS='-MRq -z-2 -j2’
wjv
14
A également treeune option pour forcer les couleurs sur:
Je sais que c'est vieux et que beaucoup ont déjà fourni la bonne réponse, mais je voudrais ajouter qu'il est toujours préférable d'utiliser less -Ret non pas less -rsi vous avez uniquement besoin de couleurs ANSI, car cela -rpourrait poser des problèmes d'affichage des caractères.
Du manuel:
-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
seulement.Réponses:
Utilisation:
--color=always
y a-t-il à diregit
pour sortir les codes de couleur même si la sortie est un tuyau (pas un tty). Et-r
est-il là pourless
interpréter ces codes de couleurs et autres séquences d'échappement? Utilisez-R
uniquement pour les codes de couleur ANSI.la source
git config color.ui true
devrait être suffisant pour obtenir une sortie colorée, et pour lancer automatiquement un pager pour les sorties longues.watch --color 'git diff --cached --color=always'
ses amis peuvent vous apporter un peu plus de génialité.less -R
mieux (ouexport LESS=R
dans/etc/profile
)? Pourquoi lui permettriez-vous d'afficher autre chose que des séquences d'échappement "couleur" ANSI? En outre, la page de manuel indiqueWarning: 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, vous pouvez simplement taper "-r" à l'less
invite. Cela fonctionne bien sûr avec la plupart ou la totalité des options (c.--i
à- d., Activer ignorecase).grep --color=always
fonctionne de la même manière. Cela ne fait pas partie de cette question ou de cette réponse, mais je suis arrivé ici en cherchant sur Google pour la trouver.Une autre option serait d’activer les couleurs et d’utiliser «less -r» comme téléavertisseur.
Cela se traduit par
dans votre ~ / .gitconfig
Pour plus d'informations, voir le livre Pro Git .
la source
color.ui true
cela ne fonctionnait pas avec un pager, mais que ça fonctionnaitcolor.ui always
. Cela a peut-être changé depuis la publication de la réponse.color.ui true
les commandes telles quegit -p diff
etgit -p status
(où-p
signifie diriger toute la sortie vers $ PAGER, par défaut, elleless
), même pour les anciennes versions de git (par exemple , Git 1.7.1). Mais vous avez toujours besoincolor.ui always
(ce qui indique à git de générer des codes de couleur "même si la sortie est un tube (pas un tty)") pour obtenir une sortie colorée lorsque vous spécifiez directementgit status | less -r
ougit diff | less -r
. Lorsque vous spécifiez explicitement la redirection de sortie, vous ne verrez pas la sortie après avoir quitté le pager.Utilisez l' option
-r
(--raw-control-chars
) pour diminuer ou également-R
(uniquement les séquences d'échappement ANSI).J'ai un alias pour cela dans
~/.bashrc
la source
alias less='less -r'
. Aucune raison de ne pas?-r
lorsque non nécessaire peut conduire à un problème de visualisation.ack
avecless -r
vous perdez un retour de voiture\less
si la visualisation échoue.less
rien, il vous suffit de définir la$LESS
variable d'environnement sur l'ensemble des drapeaux que vous souhaitez toujours fournirless
, par exempleexport LESS='-MRq -z-2 -j2’
A également
tree
une option pour forcer les couleurs sur:Et ainsi de suite pour
ls
:la source
Juste pour ajouter une autre version sur "use less -r":
utilisez la variable d'environnement LESS avec la valeur r (ou ajoutez r à ce qu'elle est déjà)
par exemple, comme je l'utilise dans mon .bashrc
(Le X empêche l’écran de s’effacer lorsqu’on quitte moins)
la source
Dans le cas où quelqu'un voudrait faire un paging avec un json
jq
etless
cela peut être réalisé en utilisant:par exemple
Source: https://github.com/stedolan/jq/issues/764#issuecomment-95355331
la source
Je sais que c'est vieux et que beaucoup ont déjà fourni la bonne réponse, mais je voudrais ajouter qu'il est toujours préférable d'utiliser
less -R
et non pasless -r
si vous avez uniquement besoin de couleurs ANSI, car cela-r
pourrait poser des problèmes d'affichage des caractères.Du manuel:
la source