Typing 'git log --oneline' in oh-my-zsh pipes to 'less'

Pau*_*aul 28 zsh oh-my-zsh

I just switched to Oh My Zsh and I'm using the Avit theme.

When I type git log --oneline my output seems to be piped to less. It does this for whatever theme I use.

When I used bash shell, it never cleared the screen to output those lines.

如何设置它以便它不会清除屏幕以输出行,而是在我键入命令后仅输出行?

这是一个截图供参考:

在此处输入图片说明

Lux*_*ian 26

oh-my-zshless使用-R(重绘)运行命令。您可以通过添加以下行来禁止这种行为在最后的你~/.zshrc

unset LESS;
Run Code Online (Sandbox Code Playgroud)

这被设定为-R~/.oh-my-zsh/lib/misc.zsh

来源:https : //stackoverflow.com/a/49267711/1050554

  • 这应该是 IMO 公认的答案……这不是 git 的东西,而是 oh-my-zshs (4认同)
  • 我认为这个评论不起作用,但它确实起作用了,我错过了将 unset 添加到 zshrc 的 END 的部分 (2认同)

zqb*_*all 20

也许更好的解决方案:

git config --global --replace-all core.pager "less -F -X"
Run Code Online (Sandbox Code Playgroud)

如何防止 git diff 使用寻呼机?

  • 这确实更好了。我将解释原因:用更少的“简单”,例如,当您执行“git log”时,您退出寻呼机后所有历史记录都会消失。使用此命令,它会保留在屏幕上。如果日志真的很短(适合屏幕) - 它根本不使用寻呼机。只有当内容足够长时,它才会被包装在寻呼机中,并且单击“q”后不会丢失屏幕。 (2认同)

mpy*_*mpy 8

您可以定义一个寻呼机,git默认情况下它通过以下方式用于其输出

  1. $GIT_PAGER$PAGER环境变量
  2. git 配置条目 core.pager

可以使用 git 命令行选项临时禁用寻呼机--no-pager。如何使其永久化取决于上述两种可能性:

  1. 找到,在你的 shell 的配置文件中定义$GIT_PAGERor$PAGER环境变量的位置并删除该行。

  2. git config --global core.pager ''


小智 5

解决此问题的一个简单方法是git log在全局配置设置中不使用寻呼机:

git config --global pager.log false