जिस कार्यक्षमता का आप उल्लेख कर रहे हैं उसे "फोल्डिंग" कहा जाता है (:help usr_28
देखें)। zf कमांड मैन्युअल रूप से फोल्ड बनाने के लिए उपयोग किया जाता है और केवल तभी उपयोग किया जाता है जब foldmethod
विकल्प या तो "मार्कर" या "मैन्युअल" पर सेट हो। आपके द्वारा दिए गए उदाहरणों में, आप a}
और a)
टेक्स्ट ऑब्जेक्ट्स द्वारा निर्दिष्ट क्षेत्रों में फ़ोल्डर्स बना रहे हैं (:help usr_4.8
देखें)।
सी के लिए, आप setlocal foldmethod=syntax
कर सकते हैं और फ़ोल्डिंग क्षेत्र स्वचालित रूप से वाक्यविन्यास नियमों द्वारा निर्धारित किए जाएंगे। यह केवल ~/.vim/ftplugin/c.vim
में सेटिंग डालने या अपने ~/.vimrc
में निम्न autocmd डालकर सी फ़ाइलों के लिए किया जाना चाहिए।
autocmd FileType c setlocal foldmethod=syntax
एनबी। उन दोनों की आवश्यकता है कि फ़ाइल टाइप पहचान सक्षम है (filetype on
), और ftplugin समाधान की आवश्यकता है कि फ़ाइल प्रकार प्लगइन्स सक्षम हैं (filetype plugin on
)। उत्तरार्द्ध पूर्व का सुपरसैट है, इसलिए आपको अपने ~/.vimrc
दोनों आदेशों की आवश्यकता नहीं है।
खोलने के लिए के रूप में/वर्तमान बफर में सभी परतों को बंद करने, उन zआर और zएम आदेशों क्रमशः रहे हैं।
एक और चीज़ की आवश्यकता है। सिंटेक्स बहुत अच्छा काम करता है लेकिन मुझे zfa को परिभाषित नहीं करने देता है) ताकि मैं तर्क सूचियों को ध्वस्त कर सकूं। मेरे पास कुछ वाकई लंबी सूचियां हैं जिन्हें मुझे देखने की आवश्यकता नहीं है कि उनमें क्या है और यह स्वचालित रूप से पतन करने के लिए वास्तव में आसान होगा लेकिन यह मुझे सिंटैक्स मोड में ऐसा करने नहीं देगा और मेरे पास परिभाषित करने के लिए परिभाषित मोड के लिए बहुत सारे फ़ंक्शन हैं । –
दुर्भाग्य से, आप एक ही समय में एकाधिक foldmethods का उपयोग नहीं कर सकते हैं और मैन्युअल फोल्ड सृजन केवल मार्कर/मैन्युअल विधियों के लिए काम करता है। आप सिंटैक्स/c.vim को सिस्टम-व्यापी निर्देशिका से ~/.vim/syntax/c.vim में कॉपी कर सकते हैं और "फ़ोल्ड" कीवर्ड को cParen सिंटैक्स परिभाषाओं के अंत में जोड़ सकते हैं। नकारात्मकता यह है कि आपको ऐसा करने की आवश्यकता होगी जब भी जब भी नए प्रमुख विम रिलीज किए जाते हैं तो आप अपस्ट्रीम किए गए किसी भी बदलाव को खोना नहीं चाहते हैं। यह भी आवश्यक है कि आप एक अलग लाइन पर "{" खोलें, अन्यथा इसका गुना तर्क सूची गुना ओवरराइड करेगा। – jamessan