हमारे सी ++ कोड बेस में हम 99 कॉलम लाइनें रखते हैं लेकिन 79-कुछ विषम कॉलम मल्टीलाइन टिप्पणियां रखते हैं। क्या यह स्वचालित रूप से करने के लिए एक अच्छी रणनीति है? मुझे लगता है कि स्मार्ट टिप्पणी लाइन-जुड़ने और अग्रणी * सम्मिलन के कारण मोड पहले से ही ज्ञात हैं।मल्टीलाइन सी टिप्पणियों के लिए अलग-अलग टेक्स्टविड्थ को विम करें?
उत्तर
स्पष्ट रूप से दोनों कोड और टिप्पणियां उसी textwidth
विकल्प का उपयोग करती हैं।
:autocmd CursorMoved,CursorMovedI * :if match(getline(.), '^\s*\*') == 0 | :setlocal textwidth=79 | :else | :setlocal textwidth=99 | :endif
यहाँ महत्वपूर्ण हिस्सा पता लगा रहा है जब हम एक टिप्पणी में कर रहे हैं: जहाँ तक मैं देख सकता हूँ, केवल चाल गतिशील इस विकल्प को सेट करने के लिए है।
/*
* my comment
*/
मेरी regex काम करना चाहिए ... जब तक आप कोड *
के साथ शुरू में लाइनों (जो मुझे लगता है कि C++
में C
में हो सकता है, कम बार) है: आप केवल टिप्पणियों इस तरह से स्वरूपित हैं। यदि आप इस तरह की टिप्पणियों का उपयोग करते हैं:
// comment line 1
// comment line 2
रेगेक्स लिखने के लिए भी आसान है। आप कोने मामलों सहित सभी संभव स्थितियों, कवर करने के लिए चाहते हैं, तो ठीक है ... मुझे लगता है कि सबसे अच्छी बात एक अलग पता लगाने समारोह को परिभाषित करने और फोन है कि :autocmd
बजाय match()
से होगा।
+1, मैं एक समान प्रस्ताव पोस्ट करता था लेकिन यह इस के समान होता। – progo
प्रदर्शन पर इसका किस प्रकार का प्रभाव पड़ता है? अगर मैं सर्वर में एसएसएचड हूं, तो क्या यह मेरी विलंबता को ध्यान में रख सकता है? –
यह @ Kazark नहीं होगा, सभी तर्क Vim (यानी सर्वर पक्ष) के अंदर किया जाता है। ऐसा कहकर, यह प्रदर्शन को प्रभावित करेगा जैसे ही आप इसे स्थानीय रूप से उपयोग कर रहे थे (यानी एसएसएच के माध्यम से नहीं) –
मैं इसी समस्या से आया और मुझे लगता है कि मुझे एक उपयुक्त समाधान मिला है।
मैं अपनी टिप्पणियों को शब्द लपेटने के लिए क्या चाहता था ताकि जब मैं टाइप कर रहा हूं तो मुझे टेक्स्ट बनाने के बारे में चिंता करने की आवश्यकता नहीं है। यह टिप्पणी पाठ के साथ अच्छी तरह से काम करता है। लेकिन मैं अपने कोड vim प्रारूप के साथ सहज नहीं था। तो मैं एक्स कॉलम के बाद लाल रंग में हर चीज़ को हाइलाइट करना चाहता था।
केवल सीपीपी कोड के साथ ऐसा करने के लिए आप निम्नलिखित को अपने ~/.vim/ftdetect/cpp.vim फ़ाइल में जोड़ देंगे।
set textwidth=79
match ErrorMsg '\%>99v.\+'
नोट: यदि वे मौजूद नहीं हैं तो आपको फ़ाइल और फ़ोल्डर्स बनाना पड़ सकता है।
आप इस के साथ समस्याओं सुनिश्चित करें कि आप formatoptions लिए निर्धारित किया है कि बनाने के हों: सेट formatoptions vim के अंदर:
formatoptions=croql
आप चलाकर देख सकते हैं।
क्षमा करें, लेकिन नहीं - यह वही समाधान है जो मुझे इस प्रश्न के लिए मिला है कि मैंने पूछा: http://stackoverflow.com/questions/235439/ पूरे स्थान पर जंक हाइलाइट करना बहुत कम उत्सुकता है, जिसके लिए मैं उम्मीद कर रहा हूं! – cdleary
आप एक कस्टम 'formatexpr' या' formatprg' सेट कर सकते हैं, लेकिन यह एक vim प्लगइन या एक बाहरी फ़ॉर्मेटर programm लेखन की आवश्यकता होगी, विवरण के लिए सहायता देखें। मुझे कोई प्लगइन्स नहीं पता जो आपके लिए यह करेगा, लेकिन मुझे यकीन नहीं है कि वे मौजूद नहीं हैं। – ZyX
क्या आप या तो नमूना कोड पोस्ट करना चाहते हैं या एक लिंक प्रदान करना चाहते हैं जिसे आप स्वरूपित करना चाहते हैं? कोई वादा नहीं, लेकिन मैं एक साधारण स्वरूपण कार्यक्रम लिखने में सक्षम हो सकता हूं। –
@ अणुओं: मैं एक स्वरूपण कार्यक्रम की तलाश नहीं कर रहा हूं, बस कुछ ऐसा जो कुछ भी जानता है, मेरी टेक्स्टविड्थ सामान्य 99 की बजाय 79 है जब मैं एक बहुभाषी टिप्पणी के भीतर टाइप कर रहा हूं। – cdleary