我尝试在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
相应地被尊重。
2条答案
按热度按时间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设置。ujv3wf0j2#
好吧。将
export LESS="-x4 $LESS"
添加到我的.bashrc
中似乎已经完成了任务。似乎$LESS
标志也应用于core.pager
中的标志之上。我仍然不知道它为什么工作。
我的env变量:
字符串