使用vimdiff与diff文件

如何使用vimdiff查看diff文件中描述的差异?

不要使用/usr/bin/vimdiff命令,试试这个:

  $ vim文件
 :垂直diffpatchpath/ to / diff 

:vert diffpa简称:vert diffpa
这相当于在原始文件和随后打补丁的文件上调用vimdiff ,但是vim为临时文件调用patch

编辑

如果你想自动inputvim的差异模式,使用这个:

  $ vim file +'vert diffpa path / to / diff' 

其中+command要求vim执行“命令”。 ( +/abc 123跳转到123行, +/abc跳转到“abc”的第一个匹配,这是所有文件。)

关于Ken的查询:如果diff文件包含了应用于当前正在编辑的文件以外的其他文件,那么不用担心; vim调用下面的patch可执行文件,它会询问这些神秘丢失的文件的位置,然后你可以告诉patch跳过那些文件。

从另一个方向来。 我写了一个Vim插件,它显示自上次以vimdiff或统一比较格式保存以来对文件所做的更改。

在这里获取: diffchanges.vim

复制原始文件,然后应用diff

 vimdiff original_file patched_file 

你也可以查看vim.org脚本 ,这些脚本已经被写入来处理svn diff输出。 如果你正在从版本控制系统生成你的差异,那么看看vcscommand.vim:CVS / SVN / SVK / git集成插件 。

你会说更多关于你为什么要使用vimdiff吗?

例如,你想要显示一个(统一)差异文件中的每个字符的差异吗? 。 如果是这样的话,有人回答我的问题,同样 的build议基本上只是在差异上启动emacs,并击中ALT-n来循环通过,很好地突出每个字或每个字符的变化(类似vimdiff)。 它工作的很好,但是为了做到这一点,启动emacs是一件坏事。 我只知道有足够的emacs这样做,然后退出,而不是修补补丁。 🙂

无论如何,emacs的答案给了我一些想法。 我敢肯定,Vim可以用来为diff文件提供更好的突出显示,也许更像ediff。 我回头看了一会儿,vim用户列表上的人有一个很好的build议, 把google-diff-match-patchjoin进来 。 例如,可以从Python Vim ftplugin使用Python界面。

对于使用“答案”回答这个问题可能并不是一个好答案时,抱歉,“添加评论”的格式对于我想说的内容太有限了。

对于后人来说, 这是对另一个类似问题的参考 (这里也已经链接了)。