Git忽略分页器设置?

u1ehiz5o  于 9个月前  发布在  Git
关注(0)|答案(2)|浏览(100)

我尝试在git中设置寻呼机设置,以便在退出通过调用git diff创建的less会话时清除屏幕,基本上与less -X相反。但是,我尝试的任何操作都没有达到预期的效果。
我在.gitconfig文件中设置了core.pager=less -FRS,调用git config --list显示了它。但是寻呼机一直表现得好像我仍然设置了-X标志,即使调用git init重新读取.gitconfig文件也没有效果。
这可能是什么原因呢?我的git版本是2.21.0.windows.1。

**编辑:**这似乎只是-X标志行为的问题。其他设置,如行切割/折叠-F和标签大小-x4相应地被尊重。

vuktfyat

vuktfyat1#

Git总是导出LESS环境变量的一些设置。(即使你将core.pager设置为cat也是如此!)它的 * 方法 * 很简单:

  • 如果设置了$LESS,则它会在不受干扰的情况下传递它(即使它设置为空字符串,也是如此)。
  • 否则将导出LESS=FRX

然后它运行core.pager$GIT_PAGER或其他设置所选择的寻呼机。
由于less本身服从$LESS的值,因此您将得到-X的行为。(这样Git就可以不受干扰地通过它)或者,例如,将core.pager设置为less +X,这样命令行+X将覆盖环境-X。后者是less的一个特殊功能,而不是Git的一个功能:命令行可以覆盖所有的env设置。

ujv3wf0j

ujv3wf0j2#

好吧。将export LESS="-x4 $LESS"添加到我的.bashrc中似乎已经完成了任务。似乎$LESS标志也应用于core.pager中的标志之上。
我仍然不知道它为什么工作。
我的env变量:

$ echo LESS=\"$LESS\" PAGER=\"$PAGER\" GIT_PAGER=\"$GIT_PAGER\"
LESS="-x4 " PAGER="" GIT_PAGER=""

字符串

相关问题