Este problema puede deberse al archivo _vimrc predeterminado creado por el instalador en Windows. Si todavía está usando ese archivo predeterminado, o si lo copió en algún momento, verifique la función que ha asignado a la diffexpr
opción. Uno de los parches entre Vim 7.3 y 7.4 introdujo nuevas reglas de cotización predeterminadas para el shell cmd.exe en Windows. Este parche rompió la solución en la función MyDiff () diseñada para solucionar el mismo problema resuelto por el parche.
La función MyDiff () se corrigió con la versión 7.4.103 arreglando el instalador. Aquí está la función MyDiff () que el último instalador creará para usted si solo desea copiarla en su _vimrc:
function MyDiff()
let opt = '-a --binary '
if &diffopt =~ 'icase' | let opt = opt . '-i ' | endif
if &diffopt =~ 'iwhite' | let opt = opt . '-b ' | endif
let arg1 = v:fname_in
if arg1 =~ ' ' | let arg1 = '"' . arg1 . '"' | endif
let arg2 = v:fname_new
if arg2 =~ ' ' | let arg2 = '"' . arg2 . '"' | endif
let arg3 = v:fname_out
if arg3 =~ ' ' | let arg3 = '"' . arg3 . '"' | endif
if $VIMRUNTIME =~ ' '
if &sh =~ '\<cmd'
if empty(&shellxquote)
let l:shxq_sav = ''
set shellxquote&
endif
let cmd = '"' . $VIMRUNTIME . '\diff"'
else
let cmd = substitute($VIMRUNTIME, ' ', '" ', '') . '\diff"'
endif
else
let cmd = $VIMRUNTIME . '\diff'
endif
silent execute '!' . cmd . ' ' . opt . arg1 . ' ' . arg2 . ' > ' . arg3
if exists('l:shxq_sav')
let &shellxquote=l:shxq_sav
endif
endfunction
Puede ver su versión completa en Vim usando los :version
o :intro
comandos, o en la pantalla de bienvenida al inicio.
Lamentablemente, si desea un instalador oficial, deberá esperar hasta 8.0 o instalar una compilación nocturna . Sin embargo, puede instalar Vim desde otros lugares o construir su propio Vim .
Duplicado en el desbordamiento de pila (inusualmente, sobre el tema en ambos sitios), si esta respuesta se actualiza, también debería hacerlo la otra.