我正在尝试以这样的方式在git
中设置寻呼机设置,以便在退出通过调用less
创建的git diff
会话时清除屏幕。 less -X
的功能。但是,我尝试的任何方法都无法达到我想要的效果。
我在core.pager=less -FRS
文件中进行了.gitconfig
设置,并且调用git config --list
就是这样。但是,传呼机的行为好像仍然设置了-X
标志,即使调用git init
来重新读取.gitconfig
文件也没有效果。
这可能是什么原因?我的git版本是2.21.0.windows.1。
编辑:这似乎只是-X
标志行为的问题。相应地会考虑其他设置,例如行斩/折叠-F
和制表符大小-x4
。
答案 0 :(得分:2)
Git总是导出LESS
环境变量的某些设置。 (即使您将core.pager
设置为cat
也是如此!)方式这样做很简单:
$LESS
,它将毫不费力地传递给它。 (即使将其设置为空字符串也是如此。)LESS=FRX
。然后它运行core.pager
或$GIT_PAGER
或其余设置选择的任何寻呼机。
由于less
本身遵循$LESS
的值,因此您获得了-X
的行为。如您所愿,如果您不想要它,则可以自己设置$LESS
(以便Git不受干扰地传递它),例如,将core.pager
设置为less +X
,以便命令行+X
会覆盖环境-X
。后者是less
的特殊功能,而不是Git的功能:命令行可以覆盖所有环境设置。
答案 1 :(得分:0)
好吧。将export LESS="-x4 $LESS"
添加到我的.bashrc
似乎可以解决问题。似乎$LESS
标志也应用在core.pager
中的标志之上。
我仍然不知道为什么会起作用。
我的环境变量:
$ echo LESS=\"$LESS\" PAGER=\"$PAGER\" GIT_PAGER=\"$GIT_PAGER\"
LESS="-x4 " PAGER="" GIT_PAGER=""