Take diff of two vertical opened windows in Vim
I've have two files opened. They are opened in vertical mode, next to next. Can I instantly diff these two files without leaving or closing Vim ?
To begin diffing on all visible windows:
:windo diffthis
which executes :diffthis
on each window.
To end diff mode:
:diffoff!
(The !
makes diffoff
apply to all windows of the current tab - it'd be nice if diffthis
had the same feature, but it doesn't.)
in each of the windows you want to diff type:
:diffthis
If you want to diff all of the open windows, you can do:
:windo diffthis
(windo
will apply the command to all open windows)
Following up on the earlier answers,
-
:windo difft
(short fordiffthis
) will start diff mode in all the open windows. -
:windo diffo
(short fordiffoff
) will stop diff mode in all the open windows.
I have the following mappings in my vimrc
to make it easier:
command! Difft windo diffthis
command! Diffo windo diffoff
Following on the earlier answers I adapted the mapping provided by @cxw. The following mapping automatically closes NERDTree and diffs the open windows. It does not matter if NERDTree is closed, it works the same way. I do this quite often so it saved me quite some time.
command! Difft NERDTreeClose | windo diffthis