在 Vim 中对两个垂直打开的窗口进行差分

我打开了两份文件。它们是以垂直模式打开的,紧挨着下一个。我可以在不离开或关闭 Vim 的情况下立即区分这两个文件吗?

23753 次浏览

在每个窗口中输入:

:diffthis

If you want to diff all of the open windows, you can do:

:windo diffthis

(windo将对所有打开的窗口应用该命令)

To begin diffing on all visible windows:

:windo diffthis

对每个窗口执行 :diffthis

结束差异模式:

:diffoff!

(!使得 diffoff适用于当前选项卡的所有窗口-如果 diffthis有相同的功能就好了,但是它没有。)

Following up on the earlier answers,

  • :windo difft (short for diffthis) will start diff mode in all the open windows.
  • :windo diffo(diffoff的缩写)将在所有打开的窗口中停止差速模式。

我在我的 vimrc中使用了以下映射来简化操作:

command! Difft windo diffthis
command! Diffo windo diffoff

根据前面的答案,我修改了@cxw 提供的映射。下面的映射自动关闭 NERDTree并区分打开的窗口。如果 NERDTree是关闭的,这并不重要,它的工作方式是相同的。我经常这样做,所以它节省了我相当多的时间。

command! Difft NERDTreeClose | windo diffthis