====== diff ====== To perform a 'diff' is to view the differences between two files. Vim will automatically show you the different areas by highlighting the lines. You can easily copy those portions between the files if desired. ===== diff from command line ===== diff's are so common that vim comes with a command just for them. To start vim in diff mode with two files, use the vimdiff command: vimdiff ===== diff after vim is started ===== If vim is already running, open the first file. Type the following (command mode): :diffsplit file2 ===== diff preferences ===== You can adjust your .vimrc file to customize your diff usage. A common viewing preference is to make diff's show up vertically, instead of horizontally. " make vertical the default diff split (filler was already there) set diffopt=filler,vertical Winmerge is a popular Windows-only application, dedicated to managing diffs. You can simulate the behavior of the Winmerge keys with the following: " disable cmd opt mappings for MacVim (interferes with winmerge mappings) let macvim_skip_cmd_opt_movement = 1 " use diff navigation like winmerge, using alt with up, down, left, right nnoremap ]c nnoremap [c function! CopyToLeft() if !&diff return endif let currwin = winnr() if( currwin == 1 ) :diffget else :diffput endif endfunction function! CopyToRight() if !&diff return endif let currwin = winnr() if( currwin == 1 ) :diffput else :diffget endif endfunction nnoremap :call CopyToRight() nnoremap :call CopyToLeft() ===== diffs on directories (multiple files) ===== Vim by default only handles diffs between files. If you need to analyze entire directories, try using the [[docs:diff:dirdiff|DirDiff]] plugin for vim.