यह समस्या विंडोज पर इंस्टॉलर द्वारा बनाई गई डिफ़ॉल्ट _vrcrc फ़ाइल के कारण हो सकती है। यदि आप अभी भी उस डिफ़ॉल्ट फ़ाइल का उपयोग कर रहे हैं, या यदि आपने इसे किसी बिंदु पर कॉपी किया है, तो उस फ़ंक्शन की जांच करें जिसे आपने diffexpr
विकल्प को सौंपा है । Vim 7.3 और 7.4 के बीच के पैच में से एक ने विंडोज पर cmd.exe शेल के लिए नए डिफॉल्ट कोटिंग नियम पेश किए। इस पैच ने MyDiff () फ़ंक्शन में पैच द्वारा हल की गई समस्या को ठीक करने के लिए डिज़ाइन किया गया वर्कअराउंड तोड़ दिया।
इंस्टॉलर को ठीक करके MyDiff () फ़ंक्शन 7.4.103 संस्करण द्वारा तय किया गया था। यहाँ MyDiff () फ़ंक्शन है जो नवीनतम इंस्टॉलर आपके लिए बनाएगा यदि आप इसे अपने _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
आप अपने पूर्ण संस्करण को Vim :version
या :intro
कमांड्स का उपयोग करके , या स्टार्टअप पर स्प्लैश स्क्रीन पर देख सकते हैं ।
दुर्भाग्य से यदि आप एक आधिकारिक इंस्टॉलर चाहते हैं, तो आपको या तो 8.0 तक इंतजार करना होगा, या एक रात का निर्माण स्थापित करना होगा । फिर भी, आप अन्य स्थानों से विम स्थापित कर सकते हैं या अपना स्वयं का विम का निर्माण कर सकते हैं ।
स्टैक ओवरफ्लो पर डुप्लिकेट (असामान्य रूप से, दोनों साइटों पर ऑन-टॉपिक), यदि यह उत्तर अपडेट किया गया है तो अन्य को करना चाहिए।