Ad blocker interference detected!
Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers
Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.
created 2005 · complexity intermediate · author Kartik Agaram · version 6.0
This tip is for when you are working with a two-window vertical diff (comparing two files, side-by-side).
[c to go to a specific change. Then use M-, and M-. to patch using the version on the left or right respectively. The cursor is then positioned in the file that changed for ease of saving, etc.
I find this more intuitive than using diffput and diffget because I no longer need to remember which window the cursor is in.
function! DiffTake(dir, oppdir) let l:old = winnr() exec "wincmd ".a:dir " Assumption: just 2 windows side by side. if (winnr() == l:old) diffput exec "wincmd ".a:oppdir else wincmd p diffget endif endfunction function! SetupDiffMappings() if &diff map <Esc>, :call DiffTake("h", "l")<CR> map <Esc>. :call DiffTake("l", "h")<CR> endif endfunction " vim -d call SetupDiffMappings() " Entering diff mode from within vim - diffsplit, etc. autocmd FilterWritePost * call SetupDiffMappings()
You might also like these settings (but it will require a little savy on keeping which side is which):
" <F11> moves to "previous" change location, " <F12> moves to "next" change location, map <F11> [c map <F12> ]c " SHIFT<F12> does a "diff put" change location, map <S-F12> dp