vim内置了此功能(带有正确的命令行标志)。
vim -d <file1> <file2>
这将在视图中打开每个文件并突出显示差异。
任何相同的代码都将folded
消失,因此您无需查看相同的代码或滚动浏览大量相同的代码。
但是,还有一个包装器应用程序vimdiff
可以使用正确的标志正确地调用vim。
vimdiff source1.cpp source2.cpp
如果您使用的是git,则可以设置外部diff工具。因此,很容易将vimdiff设置为git的diff工具。
git config --global diff.tool vimdiff
使用vimdiff时,您可以编辑任何一侧,并且diff突出显示会保持同步,以显示差异。
注意:从git diff编辑时。如果您尝试编辑文件的存储库存储版本,则退出时,所做的更改将被放弃(git不信任您的原始版本,因此您将其与tmp副本区别开来),但是您可以将本地副本编辑为您喜欢的内容,并且将其保存在当前版本中。
一些在以下方面有用的基本命令 vimdiff
dp diffput: puts changes under the cursor into the other file
making them identical (thus removing the diff).
do diffget: (o => obtain). The change under the cursor is replaced
by the content of the other file making them identical.
]c Jump to the next diff
[c Jump to the previous diff
我用来与vimdiff配合使用的其他vim设置
if &diff
highlight! link DiffText MatchParen
endif
这将关闭突出显示已更改的代码位。因此,已更改的行将突出显示,以便我可以发现更改,但已更改的实际文本会在该行上突出显示(因为未突出显示)。
:Gdiff
并且:Gvdiff
如果您的当前缓冲区是由git管理的,那么这两个命令都可以让您看到当前缓冲区的并排差异。当您在某些文件上存在合并冲突时,它还会帮助您解决三个窗口布局中的冲突