如何强制 git 的寻呼机换行?

How to force git's pager to wrap long lines?

在我使用 git 的大多数机器上,git diffgit show 等命令输出中的长行被换行。

不过,在一台机器上,长行会被截断,我必须使用左右箭头键水平滚动屏幕。我一点也不喜欢这种行为,我需要改变它。

我假设这是 git 的寻呼机中的一个配置变量,或者什么的。有人知道这是什么吗?

我看过 this inverse question 但我无法从中推断出我的问题的答案。


更新:我的印象是 git 有自己的内置寻呼机。然而,对 ps 的实验表明,在它正常工作(确实换行)的机器上有一个程序 /usr/bin/pager 运行,而在它“损坏”的机器上(即,需要水平滚动),运行 寻呼机是 less。所以也许这是一个 less 问题,而不是 git 问题。

罪魁祸首似乎是 less 并且源代码分发中 less 的默认设置是换行,这听起来像是您继承了 shell已明确配置。

首先,您可以通过在提示符下输入 -S 来切换它。

检查是否存在 LESS 环境变量,以及它是否包含包含 'S' 的值(有关完整选项集,请参阅 https://man7.org/linux/man-pages/man1/less.1.html#OPTIONS)。如果是这样,您需要对其进行调整,使 +S-S 相反。

在我的 Mac 上,这个有效:

export LESS=+S

其他有趣的选项是 -C,它从顶部重新绘制而不是向上滚动(个人喜好),-N 给出行号,-Q 使 less完全沉默。