Vim diff opens 2 files for diffing, but it doesn't navigate to the first diff section automatically on startup. Can I add something to startup script (like _vimrc) to do this?
]c doesn't jump to the first difference, it jumps to the next difference. If your first difference is on the first line,
]c would jump to the the second one which is not what you want. One could work around that with
]c[c (jump to next difference then jump to previous).
$ vim -d -c 'norm ]c[c' filea fileb
seems to do what you want.
I don't think it is necessarily a good idea to put that in your startup sciript.
Yes, building on @romainl's answer:
if &diff " Jump to next change, then prev change. This puts us on the first change " even if it is on line 1. autocmd VimEnter * normal! ]c[c endif
This needs to be on
VimEnter (I'm not sure why neither
BufEnter work, maybe someone else knows?) I used the script linked in this answer to determine the earliest event that will work correctly.
You can also add other diff-only mappings in the same block:
" Jump to next change after getting or putting a chunk nnoremap do <Cmd>diffget<CR>]c nnoremap dp <Cmd>diffput<CR>]c