मैं कैसे सिर्फ कुछ भी नहीं शुरू करने के लिए विम में foldlevelstart सेट कर सकते हैं, फिर भी zr को तुरंत काम करने की अनुमति देता है?


8

Vim में, मैं आम तौर पर सेट foldmethodकरने के लिए indentसबसे फ़ाइल प्रकारों के लिए। सामान्य तौर पर, मुझे सभी फोल्ड के साथ खोलने वाली फाइलें पसंद हैं। हालांकि, zmफ़ाइल के पार विश्व स्तर पर बंद सिलवटों को शुरू करने के लिए तुरंत उपयोग करना शुरू करना उपयोगी है, एक समय में एक स्तर, मुझे रास्ते में प्राप्त किए बिना विवरण की फ़ाइल की समग्र संरचना को देखने की अनुमति देता है।

एकमात्र सामान्य समाधान जो मैंने पाया है कि foldlevelstartबहुत अधिक संख्या में सेट करना है, उदाहरण के लिए 99, यह सुनिश्चित करने के लिए कि सभी फाइलें (विभिन्न फाइलों को ध्यान में रखते हुए अधिकतम इंडेंट के विभिन्न स्तर होंगे) पूरी तरह से प्रकट नहीं होती हैं। फिर भी, मुझे फ़ाइल के अधिकतम गुना स्तर zmतक कम करने के लिए बार-बार उपयोग करना होगा foldlevel, आम तौर पर 99 से कम, जो बोझिल और अव्यवहारिक है। मैं foldlevelमैन्युअल रूप से vim कमांड लाइन का उपयोग कर सेट कर सकता हूं , लेकिन मुझे अभी भी फ़ाइल में अधिकतम इंडेंट जानने की आवश्यकता होगी।

क्या फ़ाइल foldlevelमें अधिकतम चालू इंडेंट / गुना स्तर की तुलना में ठीक एक सेट के साथ एक फ़ाइल खोलने का एक व्यावहारिक तरीका है?

उदाहरण के लिए, निम्नलिखित फ़ाइल दी गई है:

a
  b
    c
      d1
      d2
    e
      f1
      f2

यह zmदिखाने वाला पहला कुंजीपट :

a
  b
    c
+--  2 lines: d1------
    e
+--  2 lines: f1------

(ध्यान दें, हालांकि, यह सामान्य स्थिति के लिए काम करना चाहिए जहां फ़ाइल का प्रारंभिक अधिकतम इंडेंट कोई भी मूल्य हो सकता है)।


1
आप के zrसाथ भ्रमित कर रहे हैं zm; उत्तरार्द्ध गुना को कम करता है।
इंगो करकट

@IngoKarkat, आप सही कह रहे हैं, मैं हूं। भ्रम के लिए खेद है - मुझे हमेशा उन प्रमुख कॉम्बोस का मुकाबला सहज ज्ञान युक्त लगता है। मैंने अपना प्रश्न तय कर लिया है।
एंड्रयू फेरियर

"मैं हमेशा उन प्रमुख कॉम्बोस को काउंटर-सहज ज्ञान युक्त पाता हूं।" इसका मतलब माना जाता है zm= अधिक मोड़ो (गुना घटाकर) और zr= गुना कम (जोड़ो जोड़ो)
wisbucky

जवाबों:


9

यह वर्तमान फ़ाइल में उच्चतम फोल्डवेल पाता है:

:let &foldlevel = max(map(range(1, line('$')), 'foldlevel(v:val)'))

इसे स्वचालित रूप से सेट करने के लिए, आप एक का उपयोग कर सकते हैं :autocmd:

:autocmd BufWinEnter * let &foldlevel = max(map(range(1, line('$')), 'foldlevel(v:val)'))

1
Ingo, परिपूर्ण, यह वही है जो मैं देख रहा था। धन्यवाद। शर्म foldlevelstartनहीं है इस तरह एक विकल्प है।
एंड्रयू फेरियर

यह Cygwin विम पर काम करने के लिए प्रतीत नहीं होता है। मेरा foldlevel0 है और foldlevelstart-1 है जब मैं उन सेटिंग्स के साथ एक फ़ाइल लॉन्च करता हूं।
CMCDragonkai

0

उपयोग करने के बजाय zr, उपयोग करें zR, जो सभी सिलवटों को खोल देगा। इसी तरह, zMसभी सिलवटों को बंद कर देंगे।


गैरी, धन्यवाद। यह करीब है, लेकिन ऐसा नहीं है जो मैं वर्णन करता हूं। मैं एक ऐसी कमांड चाहता हूं, जो केवल एक के द्वारा फोल्डिंग लेवल को कम कर दे, लेकिन विचाराधीन फाइल से संबंधित अधिकतम फोल्ड लेवल से। ऐसा करने के लिए, मुझे 0 से फोल्डेवल को कम करने के लिए zM का उपयोग करना होगा, फिर zr को विस्तार से अधिक खोलने के लिए बार-बार। मैं एक कमांड / कुंजी संयोजन की तलाश कर रहा हूं।
एंड्रयू फेरियर

2
आप कर सकते हैं zR(फोल्डवेल को उच्चतम स्तर पर सेट करें) फिर zmकाम करेगा। यह सिर्फ एक अतिरिक्त कदम है।
समझदार

0

विकल्प set nofoldenableआपको सभी मोहरों को खोलने के साथ फ़ाइल को बंद करने देता है


यह सवाल मैंने नहीं पूछा। मैं तह सक्षम करना चाहता हूँ।
एंड्रयू फेरियर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.