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

Fat*_*lan 90 vim diff vimdiff

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

Nef*_*byr 138

要开始在所有可见窗口上进行差异:

:windo diffthis
Run Code Online (Sandbox Code Playgroud)

:diffthis在每个窗口上执行.

结束差异模式:

:diffoff!
Run Code Online (Sandbox Code Playgroud)

(该!品牌diffoff应用于当前选项卡的所有窗口-它会是不错的,如果diffthis有相同的功能,但它没有.)

  • 这是一个很好的答案,但请注意,如果打开了 minibufexplorer 窗口,则应在此操作之前关闭它。否则 diff 显示不正确的结果。 (2认同)

Nat*_*man 20

在你想要diff类型的每个窗口中:

:diffthis
Run Code Online (Sandbox Code Playgroud)

如果要对所有打开的窗口进行区分,可以执行以下操作:

:windo diffthis
Run Code Online (Sandbox Code Playgroud)

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


cxw*_*cxw 8

跟进之前的答案,

  • :windo difft(简称diffthis)将在所有打开的窗口中启动差异模式。
  • :windo diffo(简称diffoff)将在所有打开的窗口中停止差异模式。

我有以下映射vimrc以使其更容易:

command! Difft windo diffthis
command! Diffo windo diffoff
Run Code Online (Sandbox Code Playgroud)


小智 6

按照之前的答案,我调整了@cxw 提供的映射。以下映射自动关闭NERDTree区分打开的窗口。NERDTree是否关闭并不重要,它的工作方式相同。我经常这样做,所以它为我节省了很多时间。

command! Difft NERDTreeClose | windo diffthis
Run Code Online (Sandbox Code Playgroud)