4

vimdiff 有助于以图形方式显示两个文件的差异,并允许我们从左到右/从右到左选择更改。
我正在处理的文件是巨大的文件,vimdiff 报告的大多数差异都可以自动合并,除了少数几个。因为在 vimdiff 中逐个比较并采取行动需要很多时间。

我想知道 vimdiff 中是否有一个选项可以自动合并左右文件中的差异,只要没有歧义并留下类似于工具 svn merge 和 cvs merge 工具的冲突解决方案吗?

4

3 回答 3

4

除非我们有一个基础副本,其中这两个文件分支并单独完成更改,否则不可能自动合并两个文件中的更改。如果一个项目在一侧而不在另一侧,则无法判断该项目是新添加的还是现有项目已删除。由于在合并存储库中的文件时存在基本副本,因此 cvs merge,svn merge 可以自动合并更改。

于 2010-01-22T21:26:19.980 回答
3

如果你不使用版本控制,你可以尝试 diff 和 patch 这种方式:

  1. 在更改文件(例如,file.txt)之前,请备份原始版本(file.orig)。
  2. 进行更改后,制作一个补丁文件:diff file.orig file.txt >patch.txt
  3. 获取要合并更改的文件(例如,file2.txt)。
  4. 使用补丁:patch file2.txt patch.txt

更改将被合并,冲突的行将被放置在单独的文件中。

于 2009-12-28T07:59:27.487 回答
0

看起来 vimdiff 不允许这样做。手册页显示
“vimdiff - 使用 Vim 编辑文件的两个或三个版本并显示差异”

但是您可以查看Kdiff3,它可以让您进行比较和合并。

于 2009-12-27T18:24:56.010 回答