到目前为止,我正在尝试了解如何将:Glog
与:Gdiff
结合使用,以创建一个很好的概述,例如Atom编辑器的git-time-machine插件:
概述存在3个窗口
当我从quickfix列表中选择一个提交时,该版本将被放置在右侧窗口中。不要忘记突出显示的差异。
有人能帮助我吗? :)
答案 0 :(得分:6)
答案 1 :(得分:1)
以下是一些可用于模拟所描述行为的粗略版本的命令。
:only
以关闭任何其他拆分窗口:Glog
以使用文件的所有过去修订版:cnext
和:cprev
到目前为止,这是基本用法。现在假设您发现自己正在查看要与工作副本区分的文件的先前版本。这是你如何做到的:
:vsplit
将工作区划分为两个拆分窗口<C-w><C-h>
激活左侧拆分:Gedit
,它会加载您正在查看的文件的工作副本:windo diffthis
轰!你有一个差异,左边是工作副本,右边是上一个版本。
现在让我们假设您希望将工作副本保留在左侧分割中,同时遍历右侧分割中的其他过去版本:
<C-w><C-l>
激活正确的拆分:cprev
/ :cnext
通过quickfix列表返回/转发(右侧分割窗口将移出diffmode,但左侧分割仍保留在diffmode中):diffthis
以激活当前缓冲区和工作副本之间的差异当你看完差异后,运行:
:diffoff!
禁用差异模式:only
将您的工作区折叠为单个拆分:Gedit
切换回您正在使用的文件的工作副本您可以使用Vimscript自动执行其中一些步骤,也可以按照建议的方式在屏幕底部添加quickfix窗口。它会成为一个整洁的插件!就个人而言,我很高兴手工运行这些命令。这个工作流程在写出时看起来很复杂,但它可以成为练习的第二天性。