Ответ 1

Я сделал плагин, который позволяет это. Попробуйте плагин EnhancedDiff

Ответ 2

см. :help diff-diffexpr: http://vimdoc.sourceforge.net/htmldoc/diff.html#diff-diffexpr

вы можете установить его как-то вроде

set diffexpr=MyDiff()
function MyDiff()
   let opt = ""
   if &diffopt =~ "iwhite"
     let opt = opt . "-w "
   endif
   silent execute "!git diff --no-index --patience " . opt . v:fname_in . " " . v:fname_new .  " > " . v:fname_out
endfunction

Я пробовал это, но я не получил его работать, поскольку git выводит унифицированный формат diff, а vim ожидает ed style format (см. doc выше). Возможно, вам придется преобразовать вывод git diff, который, вероятно, не тот, который вы хотите.