【问题标题】:git log/show etc. replaces the terminal screengit log/show 等替换终端屏幕
【发布时间】:2016-02-09 02:07:29
【问题描述】:

我最近开始在 iTerm2 上使用zsh(oh-my-zsh,没有自定义)。但是,我在git loggit show 遇到了麻烦。

以前,例如,git log 结果只是终端的一部分,就像ls -l 结果一样。按q 键退出git log 后,结果仍保留在终端屏幕中。我能够轻松选择一些哈希 id。

但是,当前的问题是git log(或git show)结果替换了屏幕。所以,在退出git log后,终端会彻底删除所有git的结果,回到原来的画面。这种行为类似于vim

即使使用bash 或 Mac 的默认终端应用程序,此行为也是相同的。这不是--no-pager的问题。

任何帮助将不胜感激。

【问题讨论】:

  • 您是否将PAGER 设置为任何内容? PAGER=/bin/catPAGER=/usr/bin/less 似乎是明智的选择。我的环境中的默认值是像/usr/bin/less 这样的运算符,当该值未设置时。
  • 谢谢。 which $PAGER/usr/bin/less..
  • /bin/cat 有你想要的行为吗?
  • 听起来像这里讨论的less 问题:stackoverflow.com/questions/6977781/…

标签: git terminal git-log oh-my-zsh


【解决方案1】:

你可以试试:

git config --global --replace-all core.pager "less -F -X"

来自“如何防止 git diff 使用寻呼机?”:

-F 选项传递给less 会导致它在内容少于一屏时退出,但是这样做之后屏幕会重置并且您最终看不到内容-X 选项消除了这种行为。

【讨论】:

  • 非常感谢。它解决了问题!哇,这么多隐藏的选项和奇怪的行为。
【解决方案2】:

oh-my-zsh 使用-R 标志执行less,您可以运行unset LESS 以回退到默认行为。

如果你想让这个改变持久化,把这个命令放到.zshrc

【讨论】:

  • 谢谢,它有效。我也认为它与 oh-my-szh 有所不同,因为 git log 在普通 bash shell 中仍然可以正常工作
  • 您可以深入研究 .zshrc 和其他 zsh 设置来为 less 设置正确的标志。
  • 我认为这是更好的答案,因为它可以缓解根本原因。更改 git 配置对我没有帮助,例如aws 别名。
  • 我更喜欢这种方法。刚刚终于升级到 Catalina,这整个“新页面”都让我烦恼! :D
  • 结合这两个答案,也可以设置LESS=-RFX
猜你喜欢
  • 1970-01-01
  • 2018-04-28
  • 2012-04-23
  • 2018-05-08
  • 2010-09-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多