git: Show default / configured pager command

醉酒当歌 提交于 2021-02-19 07:59:05

问题


Git allows extensive configuration, with one of the values being core.pager. If this value is not set, Git performs some logic internally to automatically determine what the pager should be.

       core.pager
           Text viewer for use by Git commands (e.g., less). The value is meant to be
           interpreted by the shell. The order of preference is the $GIT_PAGER environment
           variable, then core.pager configuration, then $PAGER, and then the default
           chosen at compile time (usually less).

           When the LESS environment variable is unset, Git sets it to FRX (if LESS
           environment variable is set, Git does not change it at all). If you want to
           selectively override Git's default setting for LESS, you can set core.pager to
           e.g.  less -S. This will be passed to the shell by Git, which will translate
           the final command to LESS=FRX less -S. The environment does not set the S
           option but the command line does, instructing less to truncate long lines.
           Similarly, setting core.pager to less -+F will deactivate the F option
           specified by the environment from the command-line, deactivating the "quit if
           one screen" behavior of less. One can specifically activate some flags for
           particular commands: for example, setting pager.blame to less -S enables line
           truncation only for git blame.

           Likewise, when the LV environment variable is unset, Git sets it to -c. You can
           override this setting by exporting LV with another value or setting core.pager
           to lv +c.

Is there any way to get Git to emit the command string that it would use for the pager, if core.pager is not configured?


回答1:


Yes, with some difficulty. If you just want to see the value, the easiest way to do that is to use git var --help and view the setting in the manual page. For example, on Debian, the default is pager.

If you'd like a programmatic solution, then it's possible with the following:

$ env -u HOME -u XDG_CONFIG_HOME -u PAGER -u GIT_PAGER GIT_DIR=/dev/null GIT_CONFIG_NOSYSTEM=1 git var GIT_PAGER
pager

Similar things can be done with the editor, but with that option there are even more environment variables that must be unset.



来源:https://stackoverflow.com/questions/59940755/git-show-default-configured-pager-command

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!