git diff:什么是寻呼机?

问题描述 投票:0回答:1

[当我在某些文件上运行git diff时,它使用的是什么寻呼机?我之所以问是因为,对于我在Linux中与寻呼机一起使用的所有其他命令行工具,当我退出时(通过键入“ q”),终端将恢复到以前显示的内容,而这是我运行过的唯一证据。是命令行本身。例如:

> git help diff
> 

manless本身相同,等等。但是当我运行git diff时,整个差异仍然保留在屏幕上,即使它长了几百行。因此,如果要查看以前的命令的输出,则必须向后滚动。

这似乎是less -X的行为,它“禁用将termcap初始化和反初始化字符串发送到终端”。

我已经阅读了git diff的文档,但是没有地方可以看到如何将终端恢复到运行差异之前的状态。我可以使用export PAGER=/bin/less,但这没有任何效果(可能是git diff的默认寻呼机)。

[可能是git diff正在以某种方式将-X参数传递给less。但是,如果是这样,我仍然看不到要关闭该行为(less的手册页对此保持沉默)。

相关:https://unix.stackexchange.com/questions/167735/can-less-f-be-usefully-combined-with-termcap-initialization。但这并不能告诉我为什么git diff的行为就像传递-X参数一样。 (FWIW,我的终端报告说它是xterm-256color。)

git diff pager
1个回答
0
投票

要查看Git使用的是哪个寻呼机,可以使用git var GIT_PAGER。要找出Git所查询选项的顺序,可以使用run git var --help;手册页列出了选项的顺序。

注意,默认情况下,Git通过设置一些环境变量来在调用寻呼机时设置一些选项。默认的编译时行为是设置LESS=FRXLV=-c。如果您不希望使用这些选项,则可以通过自己设置环境变量来覆盖它们,在这种情况下,您的设置将覆盖Git的默认值。

© www.soinside.com 2019 - 2024. All rights reserved.