Puis-je obtenir moins de ne pas monochrome sa sortie?
Par exemple, le résultat de git diffest coloré, mais git diff | lessne l’est pas.
lessseulement.
Puis-je obtenir moins de ne pas monochrome sa sortie?
Par exemple, le résultat de git diffest coloré, mais git diff | lessne l’est pas.
lessseulement.
Réponses:
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.
git config color.ui truedevrait ê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 -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.
-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).
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.
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 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.
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.
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?
-rlorsque non nécessaire peut conduire à un problème de visualisation.
ackavec less -rvous perdez un retour de voiture
\lesssi la visualisation échoue.
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’
A également treeune 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 jqet lesscela 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 -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