vimdiff 有助于以图形方式显示两个文件的差异,并允许我们从左到右/从右到左选择更改。
我正在处理的文件是巨大的文件,vimdiff 报告的大多数差异都可以自动合并,除了少数几个。因为在 vimdiff 中逐个比较并采取行动需要很多时间。
我想知道 vimdiff 中是否有一个选项可以自动合并左右文件中的差异,只要没有歧义并留下类似于工具 svn merge 和 cvs merge 工具的冲突解决方案吗?
除非我们有一个基础副本,其中这两个文件分支并单独完成更改,否则不可能自动合并两个文件中的更改。如果一个项目在一侧而不在另一侧,则无法判断该项目是新添加的还是现有项目已删除。由于在合并存储库中的文件时存在基本副本,因此 cvs merge,svn merge 可以自动合并更改。
如果你不使用版本控制,你可以尝试 diff 和 patch 这种方式:
diff file.orig file.txt >patch.txt
patch file2.txt patch.txt
更改将被合并,冲突的行将被放置在单独的文件中。
看起来 vimdiff 不允许这样做。手册页显示
“vimdiff - 使用 Vim 编辑文件的两个或三个版本并显示差异”
但是您可以查看Kdiff3,它可以让您进行比较和合并。