比较Vim中的两个文件


63

在Vim中可以并排查看两个文件吗?如果是这样,我该如何设置我的编辑器来做到这一点,并且diff在Vim中的两个文件之间有办法吗?

我知道:nextand :prev命令,但这不是我要的。串联查看两个文件确实很棒。

Answers:


43

打开并排视图:

Ctrl+w v

改变它们:

Ctrl+w h or l

如果需要类似diff的视图,请签出vim软件包的一部分vimdiff命令:

vimdiff file1.txt file2.txt

2
有没有一种方法可以锁定两个窗口之间的滚动?
Zaid 2010年

1
是的,请查看vimdoc.sourceforge.net/htmldoc/options.html#%27scrollbind%27-使用vimdiff是默认的。
maxschlepzig

1
我通常在命令行上使用“ diff file1 file2”。
djangofan 2012年

2
@Zaid Use vimdiff file1.txt file2.txt(请参阅下文)
Eduardo Cuomo

42

您也可以在分屏模式下打开vim,使用以下-O选项:

vim -O file1 [file2 ...]

要打开差异模式,您需要:diffthis在每个窗格中运行命令。

另一个用例场景是,如果您已经在vim中打开了一个文件,并且想要打开该文件并将其与另一个文件进行比较。然后,您可以使用以下vim命令:

:vs otherfile (open otherfile in vertical split screen)
:diffthis (turn on diff mode in original file)
Ctrl+w l  (swap to newly opened file)
:diffthis (turn on diff mode in opened file)

然后,可以使用vim命令在每个窗格中关闭diff模式:diffoff

编辑
和另一个未提及的标准:

vim -d file1 [file2 ...]

这等效于vimdiff直接调用。


11
:windo :diffthis可以代替最后三个命令使用。
伯恩哈德(Bernhard)2012年

2

或者只是在VIM中打开第一个文件,然后:vert diffsplit file2 :vert使其垂直分割屏幕。

diffsplit 做一个比较,并分割文件并滚动锁定它们。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.