Vim-Diff is a great tool to compare two scripts and do instant merging from one to another. It is fast and very efficient to work with. Vim-Diff comes with Vim as a default functionality.
To activate Vim-Diff, there must be two script files (buffers) open in the same Vim window. To create such a thing, when you have a single file open in Vim, in command mode type
:vnew. This creates a new buffer in the same window. In the new one, you can place the other script to be compared. Then, type;
:windo diffthis This activates Vim-Diff. Voalá! The differences will be highlighted in both buffers.
To switch between windows, use
Ctrl+w+w. Optional ones;
Ctrl+w+h (move to the left window) or
Ctrl+w+l (move to the right window). Since this still requires three key-strokes, you can reduce this by mapping Ctrl+movements keys into those in vimrc as follows.
"this mapping makes switching between buffers easier. nnoremap <C-H> <C-W>h nnoremap <C-J> <C-W>j nnoremap <C-K> <C-W>k nnoremap <C-L> <C-W>l
Instead of copy/paste from one script to another, we can use vim commands to merge the difference across the scripts. There are two commands for this;
do command means diff-obtain. The change under the cursor is replaced by the content of the other file making them identical. If you are in script A, it will merge from B to A.
dp command means diff-put. It puts changes under the cursor into the other file making them identical (thus removing the diff). In this case, if you are in script A, it will merge from A to B.
Jump to the next diff.
Jump to the previous diff.
To stop the difference, in the command mode, type
:diffoff I hope you find this blog post useful. If you have any questions about this, do not hesitate to contact me.