如何使用vimdiff查看diff文件中描述的差异?
答案 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(已在此处链接)。