我在OS X 10 Yosemite的终端上使用git。
当我做git diff时,我会得到很长的变化列表,有时候我只需要滚动到最后但是除了在MacBook pro上保持keydown然后它慢慢滚动之外我无法想办法做到这一点
如果我按下FN +向下键,那么它不会滚动,除非我已经使用向下按钮向下滚动,但不会再往下走......
任何建议都会很感激,这很烦人...... :(
答案 0 :(得分:3)
您可以使用任何较少的命令来导航历史记录。 See: frequently used less commands
在上面的例子中,历史记录有221行,其中当前窗口显示第21-62行。
直接转到行号: 您可以通过键入
直接转到一行line-number (followed by) g (no spaces necessary)
例如:要转到第100行,只需输入100g
跳过x行数 输入一个数字,然后按Enter键。
向下滚动并向下滚动 使用Fn
或者使用以下替代品。
点击空格键。正如ILI建议的那样。
向上滚动
点击' w'
回家
左箭头 结束 Fn右箭
答案 1 :(得分:2)
brew install less
git config --global core.pager "less -+\$LESS -RSF"
安装较新版本的 less 修复了 -F
导致小输出在没有 -X
的情况下完全消失的错误,然后配置命令删除了 -X
,这就是滚动中断的原因。< /p>
这将用最新版本替换 MacOS 附带的 less
版本,但由于它们是相同的实用程序(与 GNU coreutils 与 BSD coreutils 不同),因此这不会破坏事情。
这是对 ognockocaten's answer 的扩展。
该答案表明:
git config --global core.pager "less -+\$LESS -RS"
这删除了两个选项:
-F
/ --quit-if-one-screen
:
如果整个文件可以显示在第一个屏幕上,则导致less自动退出。
和-X
/ --no-init
:
-X 禁止将 termcap 初始化和取消初始化字符串发送到终端。如果取消初始化字符串做了一些不必要的事情,比如清除屏幕,这有时是可取的。
这适用于手头的问题,但不是最理想的,因为无论输出有多小,less
都将始终切换到备用页面。因此,即使对于 git diff
这样的小命令,您也会看到完整的备用屏幕。
仔细阅读,似乎重新添加 -F
可以解决此问题。但是,两件事情的组合会导致此中断:
487
的 less MacOS 版本上,less 将首先切换到备用屏幕,然后检查文本是否足够小,从而将输出打印到备用屏幕缓冲区。此问题已在版本 530
中修复(请参阅 https://unix.stackexchange.com/a/107355/39135)-X
,从备用缓冲区切换回主缓冲区会清除屏幕,从而擦除刚刚打印到备用屏幕缓冲区的所有文本。因此,只需重新添加 -F
,您的小输出就会被完全擦除,就好像它们从未被打印过一样。我们无法重新添加 -X
来解决此问题,因为这会中断滚动,但我们可以更新到更新版本的 less
!
因此这一切都结合在一起 - 我们可以使用自制软件来安装最新的稳定 less
版本,然后根据本文开头的命令块配置寻呼机以包含 -F
选项发布。
答案 2 :(得分:1)
每mzabaluev的评论:
OS X终端具有一些不可思议的魔术集成,但破坏了 当less作为子进程由git运行时:当git diff |减, 可以通过触摸板手势向前滚动,但是通过 git diff的输出,它仅滚动终端输出,无法分辨 少滚动。有趣的是,git help不会遭受 这个问题。 – mzabaluev 1月4日0:39
此魔术还包括启用向上翻页(FN + up)和向下翻页(FN + down)。
解决此问题的一种快速而肮脏的方法是使用以下方法自己调用less
:
git diff --color=always | less -r
命令行选项保留git的彩色输出。我来自Can less retain colored output?
答案 3 :(得分:0)
最简单的方法是使用less
读取diff输出。您需要使用--color
和-R
选项来保持颜色。
git diff --color | less -R`
这对我来说很好。
您可以为此命令创建一个宏。
答案 4 :(得分:0)
git config --global core.pager "less -+\$LESS -RS"
在我的新macOS笔记本电脑上,git log滚动按我的预期工作(上一页/下一页按钮正常工作,颜色,滚轮滚动)。我是从旧笔记本电脑上的日志中获得的。我不确定它的来源或确切功能,因此,如果您知道,请随时进行更新。
答案 5 :(得分:0)
只需在h
之后在打开较少的终端中按git diff
,它就会调用带有快捷方式的帮助窗口