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

时间:2010-12-08 08:35:40

标签: vim diff vimdiff

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

4 个答案:

答案 0 :(得分:122)

开始在所有可见窗口上进行漫游:

:windo diffthis

在每个窗口上执行:diffthis

结束差异模式:

:diffoff!

!使diffoff适用于当前标签的所有窗口 - 如果diffthis具有相同的功能,那就不错了,但事实并非如此。)

答案 1 :(得分:19)

在你要扩散的每个窗口中输入:

:diffthis

如果你想区分所有打开的窗口,你可以这样做:

:windo diffthis

windo会将命令应用于所有打开的窗口)

答案 2 :(得分:1)

跟进之前的答案,

  • :windo difftdiffthis的缩写)将在所有打开的窗口中启动差异模式。
  • :windo diffodiffoff的缩写)将在所有打开的窗口中停止差异模式。

我在vimrc中有以下映射,以便更轻松:

command! Difft windo diffthis
command! Diffo windo diffoff

答案 3 :(得分:0)

根据之前的答案我改编了@cxw提供的映射。以下映射自动关闭NERDTree并对开放的窗口进行区分。 NERDTree是否接近并不重要,它的工作方式相同。我经常这样做,所以它节省了我很长时间。

command! Difft NERDTreeClose | windo diffthis