我可以在 git diff 中使用鼠标滚轮滚动到新行吗?

Tod*_*dor 19 git mouse-scroll scrolling

我使用的是 Ubuntu 16.04 默认终端(我相信是 GNOME?)

我面临的问题是,当我使用git diff命令检查我的本地更改时,我可以使用鼠标滚轮向上/向下滚动,但是当我到达底部时没有显示新行(所以我只能看到一页变化)。为了转到下一行,我可以使用键盘的空格或向上/向下箭头,但是我可以用鼠标滚轮以某种方式做到这一点吗?

顺便说一句,如果我使用该less命令,它会按预期工作-> 向下滚动到新行。

Tod*_*dor 28

感谢@edwinksl的回答,我设法找到了解决问题的方法。

所以默认情况下 gitLESS用作寻呼机,我相信默认参数是FRSX.

在 git 1.8+ 上,您可以使用 删除选项less -+<option>,在我的情况下,我需要删除该X选项,因此:

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

但正如@pcworld提到的,这可能会导致适合单个页面的差异出现问题,因此:

git config --global --replace-all core.pager 'less -+FX'
Run Code Online (Sandbox Code Playgroud)

为我修复了滚动问题。

  • 我需要将 `-+F` 添加到 `less` 的选项中,否则适合一个屏幕的输出是空的。请注意,这两个选项的组合将通过寻呼机通过管道传输 git 的任何输出,即使它适合一个屏幕。然而,有一个 [less 的包装脚本,仅当输出超过屏幕尺寸时调用 less](https://unix.stackexchange.com/a/329811/43920)。请参阅 [关于此 Debian 错误的评论 #10 和 #11](https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=565699#10) 和 [this question on less](https:// superuser.com/a/972232/199854)了解更多技术细节。 (3认同)

edw*_*ksl 5

/sf/answers/152874431/来看,执行此操作并保留差异突出显示的一种方法是git diff不使用寻呼机:

git --no-pager diff
Run Code Online (Sandbox Code Playgroud)


小智 5

在 Windows 终端上,答案对我没有帮助。相反,我必须执行以下操作:

git config --global --replace-all core.pager 'less --mouse'
Run Code Online (Sandbox Code Playgroud)