使用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界面。
对于使用“答案”回答这个问题可能并不是一个好答案时,抱歉,“添加评论”的格式对于我想说的内容太有限了。
对于后人来说, 这是对另一个类似问题的参考 (这里也已经链接了)。