我在终端使用git。当我必须进行一些更改时,我会使用git diff
来查看我所做的更改。我希望输出结果保留在终端中,因此我可以在按q
后查看它,因为当我按q
时,结果全部消失。
答案 0 :(得分:14)
这是因为git通过寻呼机输出它。
git --no-pager diff
默认情况下,它设置为使用寻呼机配置,您可以将此默认设置更改为使用cat
,以防止您必须使用--no-pager
键入git config --global core.pager cat
。您可以在文档here上阅读更多内容。
输出到STDOUT
并通过寻呼机要复杂得多,并且需要超出常规unix重定向和管道范围的工具。
您可以使用STDERR
将输出重定向到tee
并输出到less
,这会产生您想要的幻觉。请注意,这是一个黑客并滥用STDERR
git diff | tee /dev/stderr | less
如果您打算经常使用它,可能需要将其设为别名。
答案 1 :(得分:6)
一般来说,我不喜欢less
与内容一起消失。我通常会将LESS
环境变量设置为eFRX
:
export LESS=eFRX
X
让它停止取走内容。如果只有一个屏幕内容,F
表示退出。 R
有助于解释ANSI颜色代码(您需要git diff
),X
会在退出前停止清除屏幕。
使用less
的其他程序也会让你更开心。