Masalah ini dapat disebabkan oleh file _vimrc default yang dibuat oleh penginstal pada Windows. Jika Anda masih menggunakan file default itu, atau jika Anda menyalinnya di beberapa titik, maka periksa fungsi yang Anda tetapkan untuk diffexpr
opsi. Salah satu tambalan antara Vim 7.3 dan 7.4 memperkenalkan aturan kutip default baru untuk shell cmd.exe di Windows. Patch ini memecahkan pemecahan masalah dalam fungsi MyDiff () yang dirancang untuk memperbaiki masalah yang sama diselesaikan oleh patch.
Fungsi MyDiff () diperbaiki oleh versi 7.4.103 dengan memperbaiki penginstal. Ini adalah fungsi MyDiff () yang akan dibuat oleh pemasang terbaru untuk Anda jika Anda hanya ingin menyalinnya ke _vimrc Anda:
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
Anda dapat melihat versi lengkap Anda di Vim menggunakan :version
atau :intro
perintah, atau splash screen pada saat startup.
Sayangnya, jika Anda menginginkan penginstal resmi, Anda harus menunggu hingga 8,0, atau menginstal bangunan malam . Namun demikian, Anda dapat menginstal Vim dari tempat lain atau membangun Vim Anda sendiri .
Digandakan pada Stack Overflow (tidak biasa, sesuai topik di kedua situs), jika jawaban ini diperbarui maka harus yang lain.