अगर एंडिफ़ेल ऑनलाइनर


11

मैं अपने में इस oneliner है, vimrcलेकिन यह काम नहीं करता है:

if has("patch-7.4.710") | set listchars+=space:· else | set listchars+=trail:· | endif

VIM कहता है:

E518: Unknown option: else

क्या आप मेरी मदद कर सकते हैं ?

जवाबों:


19

आपको |पहले एक और डालने की आवश्यकता है elseअन्यथा विम को लगेगा कि आपकी कमांड set listchars+=space:· elseदो अलग-अलग कमांड के बजाय है। इसलिए आपको त्रुटि संदेश मिला: elseकमांड के लिए एक अज्ञात विकल्प है set

सही सिंटैक्स निम्नलिखित है:

if has("patch-7.4.710") | set listchars+=space:· | else | set listchars+=trail:· | endif

मैं संघर्ष कर रहा था कि मैं कहाँ |, पहले या बाद में जगह पाऊँगा else? अब, मैं अब यह दोनों है :-D। बहुत बहुत धन्यवाद :) !
सेबमा

2
@SebMa: सोचें कि यदि आपके कोड को कई लाइनों पर लिखा गया है, तो vim आपका कोड कैसे पार करेगा: निर्देश 1 if has("patch-7.4.710"), अनुदेश 2 set listchars+=space:·, अनुदेश 3 else, अनुदेश 4 set listchars+=trail:·और अंतिम निर्देश endif। के रूप में |अलग-अलग निर्देशों के लिए किया जाता है कि यह पहले एक डाल करने के लिए केवल तार्किक है elseके बाद :) और एक
statox

1
यह तर्कसंगत है जब तक कोई भाषा जानता है। C में, हम ;अलग-अलग निर्देशों का उपयोग करते हैं । C elseमें कोई निर्देश नहीं है, अन्यथा इसके ;बाद भी होता :) :)
SebMa

1
VScript के शब्दार्थ C @SebMa की तुलना में शेल स्क्रिप्टिंग के बहुत करीब हैं।
मार्टिन Tournoij

1
@SebMa नहीं, लेकिन नियंत्रण संरचनाओं सहित "(लगभग) सब कुछ का शब्दार्थ एक कमांड है" विमस्क्रिप्ट (और सी से अलग) के समान है।
मार्टिन टूरनोइज
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.