git - git diff:什么寻呼机?
问题描述
当我git diff
在某个文件上运行时,它使用的是什么寻呼机?我问是因为对于我在 Linux 中与寻呼机一起使用的所有其他命令行工具,当我退出时(通过键入“q”),终端会恢复到之前显示的内容,唯一的证据表明我运行 st 是命令行本身。例如:
> git help diff
>
与man
,less
本身一样,等等。但是当我运行时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 正在使用哪个寻呼机,您可以使用git var GIT_PAGER
. 要找出 Git 咨询的选项的顺序,您可以使用 run git var --help
; 手册页列出了选项的顺序。
请注意,默认情况下,Git 在调用寻呼机时会通过设置一些环境变量来设置一些选项。默认的编译时行为是设置LESS=FRX
和LV=-c
. 如果您不想要这些选项,您可以通过自己设置环境变量来覆盖它们,在这种情况下,您的设置将覆盖 Git 的默认值。
推荐阅读
- python - 如果我将 UTC 时间加 1 小时并进行本地化,或者将本地时间加 1 小时,为什么会有所不同?
- javascript - undefined 不是函数(评估'_reactNavigation.NavigationActions.reset')
- swift - 连接hc-05与iPhone SE iOS(v11.0)
- javascript - 使用 Java Script 从用户选择值中减去时间
- android - Android 在 Recyclerview 中拖放自定义树节点
- java - 如何将 Array 对象从一个活动传递到另一个活动,而无需可序列化的附加功能?
- vba - VBA:中断双击(两次单击)
- python - 数据提取
- c# - Visual UI 自动化验证在 ContextMenu (WPF) 中显示 DisconnectedItem
- mysql - 如何解决Windows上的xampp安装错误