使用Fugitive在VIM中跳转修改过的行

17

我有一个超大的文件,在其中修改了几行,保存了它。fugitive知道哪些行被修改了,直接跳转到这些行会非常有用。是否有现成的快捷键可以实现这个功能,或者我能否通过映射来实现?

2个回答

30
如果你的意思是你已经使用了:Gdiff命令,对比了另一个修订版本或索引,那么你可以使用内置的]c[c动作来跳转到下一个/上一个更改的起始位置,因为Vim在'diff'模式下显示更改内容。
编辑:可以看一下gitgutter插件;它会将更改内容显示在符号列中,并自动更新这些内容,甚至还会重载提到的]c命令,以满足你的期望。

2
不,我没有使用Gdiff;只是用Git对文件进行了普通的编辑。 - Max Yankov
1
你说的“逃犯知道”是什么意思?它真的可以在没有:Gdiff的情况下运行diff吗? - Ingo Karkat
1
事实证明,我已经安装了 gitgutter,但是忘记了它,所以我认为是 fugitive 负责符号列。感谢提供的链接,它确实具有此功能! - Max Yankov
有没有办法在使用:Gblame时获得类似“跳转到更改的行”的功能? - 0xc0de

25

即使没有逃逸字符,vim也会为每个文档维护一个更改列表,您可以通过调用:changes来查看它。您可以使用g;(跳转到旧更改)和g,(跳转到新更改)在更改列表中跳转。


2
这个解决方案太简单了。;-) - romainl
它可以与:Gblame一起使用,而接受的答案可悲地不能。 - 0xc0de
1
非常有用,而且在使用VSCode的时候也可以通过Vim插件实现这个功能。 - undefined

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