始终使用分页器来查看git diff的差异

43

我正在使用 less 作为 Git 分页器。

如果 git diff 的输出内容可以在一页内呈现,则 Git 会将其显示在屏幕上。

有时候,我打字时按得太快了,误按了 Ctrl + D (向下翻半页),这会导致我的终端出问题。是否有一种选项可以在 git diff 命令的输出内容非常少的情况下也启用分页器?

以下方法都无效:

  • git -p diff
  • git --paginate diff
  • git 设置:pager.diff = true

请返回翻译文本。 - Trevor Boyd Smith
1个回答

64

这取决于less命令的-F--quit-if-one-screen)选项。

如果未指定$LESS$GIT_PAGER环境变量,则Git默认使用less命令的选项FRSX。如需更改,请指定core.pager选项并将其设置为RSX

git config --global core.pager 'less -+F'

Git的早期版本在文档中推荐以下方法:

git config --global core.pager 'less -+$LESS -RSX'

1
@WilliamPursell:Git文档最近进行了更新,以更具向后兼容性的方式禁用选项。我的代码直接从(旧)手册中复制而来 - 我现在已经更新了它。文档还写道:“如果未设置,Git将LESS变量设置为FSRX”。 - knittl
@Leonmax: git help config - knittl
1
可能需要添加“-r”以启用解释ANSI颜色。 - dset0x
6
你可能还需要使用-c选项,这会导致输出始终从顶部开始并填满屏幕。 - Chris Martin
1
除非你真的知道自己在做什么,否则永远不要使用“-r”,而是始终优先考虑使用“-R”。我刚刚花了半个小时来调试这个问题。 “-R”表示“通过转义代码传递给less,并更新less对终端的模型。” 而“-r”表示“通过所有转义代码并忽略它们;祝你好运。”(这通常会以微妙的方式破坏输出。) - Glenn Willen
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接