Esse problema pode ser causado pelo arquivo _vimrc padrão criado pelo instalador no Windows. Se você ainda estiver usando esse arquivo padrão, ou se você o copiou em algum momento, verifique a função que você atribuiu à diffexpr
opção. Um dos patches entre o Vim 7.3 e 7.4 introduziu novas regras de cotação padrão para o shell cmd.exe no Windows. Esse patch quebrou a solução alternativa na função MyDiff () projetada para corrigir o mesmo problema resolvido pelo patch.
A função MyDiff () foi corrigida pela versão 7.4.103, corrigindo o instalador. Aqui está a função MyDiff () que o instalador mais recente criará para você, se você quiser apenas copiá-la para o seu _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
Você pode ver a sua versão completa no Vim usando as :version
ou :intro
comandos, ou na tela inicial na inicialização.
Infelizmente, se você deseja um instalador oficial, precisará esperar até 8.0 ou instalar uma compilação noturna . No entanto, você pode instalar o Vim de outros lugares ou criar seu próprio Vim .
Duplicado no estouro de pilha (incomumente, no tópico nos dois sites), se essa resposta for atualizada, a outra deverá ser a mesma.
:intro
comando mostra o mesmo texto e o:version
comando fornece as informações em uma linha "patches incluídos".:version
também fornece uma lista muito detalhada dos recursos incluídos ou excluídos.MyDiff()
é algo para usar ao usar o vim no Windows, mas é para algo para usar o vim através do cmd, estou usando o vim através do git bash. Obrigado.