Answers:
采用:
git diff --color=always | less -r
--color=always
git
即使输出是管道(不是tty),也可以告诉您输出颜色代码。并-r
告诉less
您解释这些颜色代码和其他转义序列。使用-R
仅ANSI颜色代码。
git config color.ui true
应该足以获得彩色输出,并自动为长输出运行寻呼机。
watch --color 'git diff --cached --color=always'
它的朋友们可以为您带来更多的惊喜。
less -R
更好的(或export LESS=R
在/etc/profile
)?为什么要允许它显示除ANSI“颜色”转义序列以外的任何内容?另外,手册页还说Warning: 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
选项,则只需在less
提示符下键入“ -r”即可。当然,这可以使用大多数或所有较少的选项(例如,-i
打开ignorecase)。
grep --color=always
以相同的方式工作。这不是该问题或答案的一部分,但是我是通过谷歌搜索该问题而来到这里的。
另一种选择是启用颜色并使用“ less -r”作为您的寻呼机。
git config --global color.ui true
git config --global core.pager 'less -r'
这导致
[color]
ui = true
[core]
pager = less -r
在你的〜/ .gitconfig中
有关更多信息,请参阅Pro Git书。
color.ui true
不适用于寻呼机,但是可以color.ui always
。自从发布答案以来,情况可能已经改变。
color.ui true
做像命令对应的工作git -p diff
和git -p status
(这里-p
指管所有的输出到$寻呼机,默认情况下它是less
)即使对于老版本的git的(例如,Git 1.7.1)。但是,color.ui always
当您直接指定git status | less -r
或时,仍然需要(告诉git输出颜色代码“即使输出是管道(不是tty)”)来获得彩色输出git diff | less -r
。当您明确指定输出重定向时,退出分页器后将看不到输出。
使用-r
(--raw-control-chars
)选项减少或减少-R
(仅ANSI转义序列)。
我为此有一个别名 ~/.bashrc
alias rless='less -r'
alias less='less -r'
。有没有理由吗?
-r
当不需要时使用会导致可视化问题。
ack
与less -r
他人打烟斗时输了回
\less
如果可视化混乱,则可以使用。
less
为任何别名$LESS
less
export LESS='-MRq -z-2 -j2’
还tree
可以选择强制启用颜色:
tree -C | less -r
依此类推ls
:
ls -lR --color | less -r
如果有人有兴趣寻呼JSON与jq
和less
它可以使用来实现:
jq -C <jq args> file.json | less -R
例如
jq -C . file.json | less -R
来源:https : //github.com/stedolan/jq/issues/764#issuecomment-95355331
我知道这已经很老了,许多人已经提供了正确的答案,但是我想补充一点,它总是总是更好用,less -R
而不是less -r
只需要ANSI颜色,因为-r
在显示字符时可能会出现问题。
从手册中:
-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