Scenario: I have opened Vim and pasted some text. I open a second tab with :tabe
and paste some other text in there.
Goal: I would like a third tab with a output equivalent to writing both texts to files and opening them with vimdiff
.
The closest I can find is "diff the current buffer against a file", but not diff
ing two open but unsaved buffers.
I suggest opening the second file in the same tab instead of a new one.
Here's what I usually do:
:edit file1
:diffthis
:vnew
:edit file2
:diffthis
The :vnew
command splits the current view vertically so you can open the second file there. The :diffthis
(or short: :difft
) command is then applied to each view.
I would suggest trying :diffthis or :diffsplit
:vert diffsplit
makes for a more traditional diff-view than without :vert
:set scrollbind
in both.
:diffsplit
I get two connected buffers.
When you have two files opened in vertical splitt, run
:windo diffthis
:diffoff
to turn off diff mode
The content of all tabs are inside the buffers. Look at the buffers:
:buffers
Find the right number for the content which should be diffed with your current tab content.
Open the buffer inside your current tab (f.e. buffer number 4)
:sb 4
Or do for vertical view:
:vertical sb 4
Then you can simple diff the content with
:windo diffthis
If you finished diff analysis you can input:
:windo diffoff
Success story sharing
vimdiff file1.txt file2.txt
and knock yourself out.edit fileN
parts can be replaced with just pasting from the buffer, which lets you diff two chunks of text without pasting each into a tmp file (something that meld lets you do, but visual diff tools on the Mac are lacking in). It worked in MacVim for me out of the box.