使用带有diff文件的vimdiff

时间:2008-10-28 09:27:26

标签: vim vimdiff

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

4 个答案:

答案 0 :(得分:54)

不要使用/usr/bin/vimdiff命令,请尝试以下操作:

$ vim file
:vertical diffpatch path/to/diff

(简称:vert diffpa。)
这相当于在原始文件和随后修补的文件上调用vimdiff,但vim会在临时文件上调用patch

修改

如果您想自动输入vim的差异模式,请使用:

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

其中+command要求vim执行“命令”。 (+123跳转到第123行,+/abc跳转到“abc”的第一场比赛,所有文件都记录在案。)

关于Ken的查询:如果diff文件包含应用于您当前正在编辑的文件以外的文件,则不用担心; vim调用下面的patch可执行文件,它会询问这些神秘丢失文件的位置,并且您可以告诉patch只是跳过那些黑客。

答案 1 :(得分:3)

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

在此处获取:diffchanges.vim

答案 2 :(得分:2)

制作原始文件的副本,应用差异然后

vimdiff original_file patched_file

您还可以查看为处理svn diff输出而编写的vim.org scripts。如果要从版本控制系统生成差异,请查看vcscommand.vim : CVS/SVN/SVK/git integration plugin

答案 3 :(得分:1)

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

例如,您想要visualize per-character differences in a (unified) diff file?吗?如果是这样,有人用my question about same回复了a suggestion,基本上只是在差异上启动emacs并点击ALT-n以循环搜索,很好地突出显示每个字或每个字符的变化(类似于vimdiff)。它工作得很好,但是为了实现这一目标,启动emacs是一件令人失望的事。我只知道足够的emacs,然后退出而不会破坏补丁。 :)

无论如何,emacs的回答给了我一些想法。我敢肯定Vim可以为diff文件提供更好的突出显示,也许更像是ediff。我一会儿看了这个,vim用户列表上的某个人对incorporate google-diff-match-patch提出了很好的建议。例如,可以从Python Vim ftplugin中使用Python接口。

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

对于后代,here's a reference to another similar question(已在此处链接)。