Posso obter menos para não monocromear sua saída?
Por exemplo, a saída de git diff
é colorida, mas git diff | less
não é.
less
apenas sobre .
Posso obter menos para não monocromear sua saída?
Por exemplo, a saída de git diff
é colorida, mas git diff | less
não é.
less
apenas sobre .
Respostas:
Usar:
git diff --color=always | less -r
--color=always
existe para informar git
a saída de códigos de cores, mesmo se a saída for um pipe (não um tty). E -r
existe para dizer less
para interpretar esses códigos de cores e outras seqüências de escape. Use apenas -R
para códigos de cores ANSI.
git config color.ui true
deve ser suficiente para obter saída colorida e executar automaticamente um pager para saídas longas.
watch --color 'git diff --cached --color=always'
e seus amigos podem lhe trazer uma grandiosidade adicional.
less -R
melhor (ou export LESS=R
dentro /etc/profile
)? Por que você permitiria que ele exibisse algo além de seqüências de escape de "cor" ANSI? Além disso, a página do manual dizWarning: 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
opção, basta digitar "-r" no less
prompt. Obviamente, isso funciona com quase todas as opções (ou seja, -i
ativar a ignorância).
grep --color=always
funciona da mesma maneira. Isso não faz parte desta pergunta ou resposta, mas cheguei aqui ao pesquisar sobre essa questão, então está aí.
Outra opção seria ativar cores e usar 'less -r' como seu pager.
git config --global color.ui true
git config --global core.pager 'less -r'
Isto resulta em
[color]
ui = true
[core]
pager = less -r
no seu ~ / .gitconfig
Para mais informações, consulte o livro Pro Git .
color.ui true
não funcionava com um pager, mas funcionava color.ui always
. Isso pode ter sido alterado desde que a resposta foi postada.
color.ui true
funciona com comandos como git -p diff
e git -p status
(onde -p
significa canalizar toda a saída para $ PAGER, por padrão é less
) mesmo para versões bastante antigas do git (por exemplo , Git 1.7.1). Mas você ainda precisa color.ui always
(que instrui o git a imprimir códigos de cores "mesmo que a saída seja um pipe (não um tty)") para obter uma saída colorida quando você especificar git status | less -r
ou git diff | less -r
. Ao especificar o redirecionamento de saída explicitamente, você não verá a saída após sair do pager.
Use a opção -r
( --raw-control-chars
) para less ou também -R
(apenas sequências de escape ANSI).
Eu tenho um apelido para isso em ~/.bashrc
alias rless='less -r'
alias less='less -r'
. Alguma razão para não?
-r
quando não necessário pode levar a problemas de visualização.
ack
com less -r
você perde um retorno de carro
\less
se a visualização atrapalhar.
less
a qualquer coisa, basta definir a $LESS
variável de ambiente para o conjunto de sinalizadores que você sempre quer fornecer para less
, por exemploexport LESS='-MRq -z-2 -j2’
Também tree
tem uma opção para forçar cores em:
tree -C | less -r
E assim por diante ls
:
ls -lR --color | less -r
Apenas para adicionar outra versão no "use less -r":
use a variável de ambiente LESS com o valor r (ou adicione r ao que já é)
por exemplo, como eu uso no meu .bashrc
export LESS=-Xr
(O X interrompe a limpeza da tela ao sair menos)
Caso alguém esteja interessado em paginar um json com jq
e less
isso pode ser alcançado usando:
jq -C <jq args> file.json | less -R
por exemplo
jq -C . file.json | less -R
Fonte: https://github.com/stedolan/jq/issues/764#issuecomment-95355331
Sei que isso é antigo e muitos já forneceram a resposta certa, mas gostaria de acrescentar que é sempre melhor usar less -R
e não less -r
se você precisar apenas de cores ANSI, pois -r
podem ocorrer problemas na exibição dos caracteres.
Do manual:
-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