Puis-je obtenir moins de ne pas monochrome sa sortie?
Par exemple, le résultat de git diff
est coloré, mais git diff | less
ne l’est pas.
less
seulement.
Puis-je obtenir moins de ne pas monochrome sa sortie?
Par exemple, le résultat de git diff
est coloré, mais git diff | less
ne l’est pas.
less
seulement.
Réponses:
Utilisation:
git diff --color=always | less -r
--color=always
y a-t-il à dire git
pour sortir les codes de couleur même si la sortie est un tuyau (pas un tty). Et -r
est-il là pour less
interpréter ces codes de couleurs et autres séquences d'échappement? Utilisez -R
uniquement pour les codes de couleur ANSI.
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 (ou export 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.
git config --global color.ui true
git config --global core.pager 'less -r'
Cela se traduit par
[color]
ui = true
[core]
pager = less -r
dans votre ~ / .gitconfig
Pour plus d'informations, voir le livre Pro Git .
color.ui true
cela 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.
color.ui true
les commandes telles que git -p diff
et git -p status
(où -p
signifie 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 -r
ou 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.
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
alias rless='less -r'
alias less='less -r'
. Aucune raison de ne pas?
-r
lorsque non nécessaire peut conduire à un problème de visualisation.
ack
avec less -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 fournir less
, par exempleexport LESS='-MRq -z-2 -j2’
A également tree
une option pour forcer les couleurs sur:
tree -C | less -r
Et ainsi de suite pour ls
:
ls -lR --color | less -r
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
export LESS=-Xr
(Le X empêche l’écran de s’effacer lorsqu’on quitte moins)
Dans le cas où quelqu'un voudrait faire un paging avec un json jq
et less
cela peut être réalisé en utilisant:
jq -C <jq args> file.json | less -R
par exemple
jq -C . file.json | less -R
Source: https://github.com/stedolan/jq/issues/764#issuecomment-95355331
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 pas less -r
si vous avez uniquement besoin de couleurs ANSI, car cela -r
pourrait 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