2012-08-15 16 views
5

में फ़ाइल खोले जाने पर केवल तभी टिप्पणी करें जब मैं विम में वर्बोज़ टिप्पणियों के साथ लंबी कोड फ़ाइलों को देख रहा हूं, तो मैं फ़ाइलों को लोड किए गए टिप्पणियों को लोड करने में सक्षम होना चाहता हूं लेकिन बाकी सब कुछ सामने आया। वर्तमान तह विन्यास मैं अपने .vimrc में है:विम

set foldmethod=syntax 
set nofoldenable 

इस तरह, जब मैं परतों कर शुरू करना चाहते हैं, मैं सिर्फ z आदेशों को क्रियान्वित करने शुरू कर सकते हैं। लेकिन क्या केवल (ब्लॉक) टिप्पणियों को फोल्ड करने का कोई तरीका है?

उत्तर

6

आप एक वैश्विक आदेश पर अमल कर सकता है सभी ब्लॉक टिप्पणी बंद करने के लिए परतों:

:g/^\/\*/foldc 

यह किसी भी लाइन है कि /* (एक आम ब्लॉक टिप्पणी सूचक) के साथ शुरू होता पर :help foldclose निष्पादित करेंगे। इस उदाहरण में / और * से बचने की आवश्यकता है। यदि आप एक अलग डेलीमीटर (उदा। :g#^/\*#foldc) का उपयोग करते हैं तो आपको / से बचने की आवश्यकता नहीं है। यदि आप इसे स्वचालित रूप से करना चाहते हैं तो आप इसे एक ऑटोोकॉन्ड में जोड़ सकते हैं।

set fdm=syntax fen 
augroup closeCommentFolds 
    au! 
    au FileType javascript %foldo | g/^\/\*/foldc 
    au FileType ruby %foldo | g/^=begin/foldc 
augroup end 

नोट इन उदाहरणों में regex में ^ चरित्र बताता है कि कि /* और मैचों पंक्ति के आरंभ में कर रहे हैं: उदाहरण के लिए। यदि आप लाइन और मैच की शुरुआत के बीच व्हाइटस्पेस के साथ मिलान करना चाहते हैं तो ^ के बजाय ^\s* का उपयोग करें। %foldo सभी फ़ोल्डर्स खोल देगा ताकि foldenable सेट हो, लेकिन यह सब कुछ नहीं बदलेगा (केवल इस मामले में टिप्पणियां)।

+0

यह एक महान उत्तरदायी है। मैंने बहुत कुछ सीखा। हालांकि, यह बॉक्स से बाहर काम नहीं किया। मुझे करना था ... सेट फेन | % फोल्डोपेन | % g ^/\ * @ कॉल मूकफॉल्ड() ', जहां' मूकफॉल्ड' एक ऐसा फ़ंक्शन है जिसे मैंने लाइनों के लिए फ़ोल्ड त्रुटियों को दबाने के लिए परिभाषित किया है जहां '/*...*/' शैली का उपयोग किया जाता है, भले ही यह एक ब्लॉक टिप्पणी न हो (हाँ, मैं ऑब्जेक्ट करता हूं, लेकिन मैंने कोड नहीं लिखा) और 'सामान्य जेसी' का उपयोग करता है। अगर आपको लगता है कि मैंने जो किया है, वह पोस्ट में सुधार करता है, तो इससे आकर्षित करने के लिए स्वतंत्र महसूस करें। (यह भी बहुत verbose है मैं जानना भी उत्सुक होगा क्यों।) +1 धन्यवाद! –

+0

असल में मेरा जवाब अजीब तरीके से व्यवहार कर रहा है ... यह उन चीज़ों को तब्दील कर रहा है जो टिप्पणियां नहीं हैं, यानी '{...}' ब्लॉक। –

+0

@ Kazark ठीक है, भ्रम के बारे में खेद है। मेरा मानना ​​है कि मेरा अद्यतन उत्तर अब पूरी तरह से काम कर रहा है। मुझे बताएं। – Conner