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, который, вероятно, не тот, который вы хотите.