| abstract
| - I always want to jump from the diff to the corresponding line in the original file. So I wrote a small script that does that, and put it in .vim/after/ftplugin/diff.vim Pressing Enter will execute that script. function! DiffJumpToFile() let a=line(".") " current line number let b=search("^\\(---\\|\\*\\*\\*\\) ", "b") " search for line like *** 478,489 *** let c=getline(b) " get this line as string let d=strpart(c, 4, match(c, ",")-4) " get the first line number (478) from that string let f=search("^\\(---\\|\\*\\*\\*\\) .*\ ", "b") " search for line like *** fileincvs.c .... let g=getline(f) " get this line as string let h=match (g, "\ ", 4) " look for end of filename (terminated by tab) in string let i=strpart(g, 4, h-4) " get the filename execute ":b " . i | " change to that file execute "normal " . (d+a-b-1) . "G" | " go to right line number endfunction nmap :call DiffJumpToFile() For the reverse operation (get a diff for the current buffer), see VimTip1030.
|