2010-12-10 63 views

回答

12

尝试vcscommand插件,使用:VCSVimDiff与当前版本(支持汞和混帐,可能是一些其他的SCM系统,以及)和内部:bdelete:bd)查看differencies(上当然是打开缓冲,而不是已经存在)以停止差价。如果您使用的是gentoo,则可以在存储库中找到它:app-vim/vcscommand

+1

接受这个,因为它适用于git和hg(以及其他人)。但是,我喜欢蒂姆波普的逃犯更适合git。 – 2010-12-10 22:47:18

5

一种方法是做到以下几点:

:!git diff

这将显示在比较的变化(所有文件)HEAD

做一个单一的文件 :!git diff path/to/file

这是一个快速的方法,不需要切换不同的应用程序,也不需要安装任何插件(在一些你没有的系统上这并不总是容易做到的掌控)。

它不会给你“内联”突出显示,但应该可以正常工作。

快速执行操作的另一种方法是执行:r !git diff查看更改,然后键入u以撤消添加。这也很好用,尤其是如果你想抽出一些文字HEAD

+0

对于当前文件,只需执行':!git diff%'或':!hg diff%'。 – 2012-08-23 21:23:37

17

看看Tim Pope的fugitive.vim插件。

我是一个git纯粹主义者,通常放到git的命令行中,但是当我在vim中时,我发现这样做大部分是我需要做的,但我仍然可以直接调用git命令。

+0

我比vcscommand插件更喜欢逃犯,但我需要hg支持,所以我接受了其他答案。不过谢谢你让我转向逃犯! – 2010-12-10 22:47:58

+0

很高兴我喜欢它。直到有朋友建议我亲自尝试,现在我发现它满足了我的需求。 – Abizern 2010-12-10 23:54:00

+1

@Abizern,对不起,我意识到这是一个古老的问题,但你如何使用逃犯突出像OP的问题改变的线? – 2013-02-16 15:42:02

4

这个怎么样(无需插件):

:new | r ! hg annotate -un # 

这对当前缓冲区的文件名运行hg annotate,然后倾倒在一个新的缓冲输出。

这种形式的命令显然不是特定于git和hg。您可以通过这种方式捕获任何shell命令的结果。

13

有一个新的插件可以做到这一点:vim-gitgutter。每当您保存文件时,它会将更改放入Vim装订线中。下面是它看起来像在行动:

enter image description here

+1

不错。如果问题只在Git上,我会接受。正是我想要的。 – 2013-03-01 21:07:35

+0

+1崇高的版本不错:) – 2013-03-04 03:12:13

+1

只用了一小会儿,它一直非常有用。它使得文件的哪些部分变得非常容易。一个不错的项目可能是将其移植到包含hg更改。 – 2013-03-04 21:38:06

1

对于水银的fugitive等效为lawrenciumhttp://bolt80.com/lawrencium

它同时支持边并排比较和突出显示diff -like的观点(基本上你从hg diff <file>得到的。

(免责声明:我是作者)