vimrc

2012-06-14 12 views
16

में "अज्ञात विकल्प" त्रुटियों को अनदेखा करें I vim 7.2 और 7.3 दोनों मशीनों के बीच एक ही .vimrc को टेट करें। विम 7.2 के साथ मशीनों मेरी 7.3-विशिष्ट विकल्प के बारे में हर बार शिकायत मैं एक फ़ाइल को खोलने:vimrc

Error detected while processing /home/spiffytech/.vimrc: 
line 72: 
E518: Unknown option: rnu 
line 73: 
E518: Unknown option: undofile 
line 74: 
E518: Unknown option: undodir=/tmp 
line 75: 
E518: Unknown option: cryptmethod=blowfish 
Press ENTER or type command to continue 

मैं विम इन त्रुटियों को अनदेखा करके नहीं जब भी मैं फ़ाइलों को खोलने में प्रवेश हिट करने के लिए मुझे तुरंत कैसे बना सकते हैं?

उत्तर

10

लपेटें से मेल खाती है:

if version >= 703 
    set rnu ... 
endif 

मदद की जाँच करें उपयोग करने के लिए संस्करण संख्या पर अधिक जानकारी के लिए v:version के लिए:

         *v:version* *version-variable* 
v:version  Version number of Vim: Major version number times 100 plus 
       minor version number. Version 5.0 is 500. Version 5.1 (5.01) 
       is 501. Read-only. "version" also works, for backwards 
       compatibility. 
       Use |has()| to check if a certain patch was included, e.g.: > 
         if has("patch123") 
<    Note that patch numbers are specific to the version, thus both 
       version 5.0 and 5.1 may have a patch 123, but these are 
       completely different. 
+0

काम करता है। निश्चित रूप से संस्करण संख्या को सावधानी बरतें- मेरे लिए यह देखने के लिए थोड़ी देर लग गई कि यह * नहीं * बस "संस्करण * 100" – spiffytech

+0

हाँ, यह मुश्किल हो सकता है, लेकिन आप इसके साथ उपयोग करते हैं। गणित करने के बजाय, मैं इसे स्ट्रिंग कॉन्सटेनेशन भावना में वर्णित करता हूं। ध्यान दें कि यह कई अन्य स्थानों में उपयोग किया जाता है। उदाहरण के लिए, पर्ल, ['उपयोग'] (http://perldoc.perl.org/functions/use.html) के साथ एक समान वाक्यविन्यास का उपयोग करता है। आपको '5.10' का उपयोग करने के लिए '5.010' का उपयोग करना होगा, जो' 5.1' नहीं है। यही कारण है कि वे इसे दशमलव अर्थ में नहीं उपयोग करते हैं, अन्यथा आप कुछ अस्पष्टता पैदा करेंगे। – sidyll

+2

संस्करण की तुलना में विशिष्ट सुविधा के लिए परीक्षण करना बेहतर है, क्योंकि एक विशिष्ट संस्करण को उस सुविधा के बिना संकलित किया जा सकता है जिसे आप ढूंढ रहे हैं। – cpbills

3

आप में। Vimrc, आप विम संस्करण के खिलाफ परीक्षण कर सकते हैं जिसे आप निष्पादित कर रहे हैं।

help v:version

if v:version >= 703 
    "do something 
    set rnu 
    set undofile 
    ... 
endif 
देखें

में नए विकल्प विम 7.3 (जो वास्तव में सहज नहीं है ...)

0

मैं कहूंगा कि इस प्रश्न का उत्तर नहीं दिया गया है। कंप्यूटर ए पर बनाए गए सत्र.विम पर विचार करें जिसमें बाद में विम संस्करण है। स्रोत नियंत्रण में जब कोई अन्य कंप्यूटर B सत्र खोलने का प्रयास करता है। Vim त्रुटियां ट्रिगर होती हैं। स्वचालित प्रक्रिया होने के लिए मैन्युअल रूप से संस्करण संख्या को लपेटना कोई समझ नहीं आता है। इस व्यवहार के साथ सत्र को सहेजते समय नए संस्करण को संस्करण संख्या में स्वचालित रूप से एक नया आदेश लपेटना होगा - जो कुछ 7.3 नहीं करता है।

19

संस्करणों की बजाय वास्तविक समर्थित सुविधाओं के लिए अधिक बढ़िया जांच करने के लायक हो सकता है।

उदा .:

if has('persistent_undo') 
    set undofile 
    set undodir=/tmp 
endif 

" Some options can only be checked with exists('+option'); I'm not sure why 
if exists('+relativenumber') 
    set rnu 
endif 

if has('cryptv') 
    set cryptmethod=blowfish 
end 
7

silent! ... के साथ किसी भी त्रुटि को अनदेखा कर सकते हैं, कभी कभी एक विकल्प वैध है, लेकिन मौजूदा माहौल में उपलब्ध नहीं है। उदाहरण के लिए:

$ vi 
Error detected while processing /home/username/.vimrc: 
line 9: 
Unknown option: indentexpr= 

परीक्षण करने के लिए एक विकल्प मौजूद है या नहीं, और अगर उपलब्ध नहीं एक त्रुटि से बचने:

if exists("&indentexpr") 
    :set indentexpr= 
endif 
+1

समस्या को हल करने का यह सबसे अच्छा तरीका है। –

+0

यह संस्करण संख्याओं के साथ चारों ओर खराब नहीं है। – iltempo

संबंधित मुद्दे