मैं एक विशिष्ट स्तंभ पर एक शासक कैसे स्थापित कर सकता हूं?


50

विभिन्न भाषाओं में कोडिंग करते समय, मुझे अपनी लाइनों को एक विशिष्ट लंबाई (आमतौर पर 79 या 80 वर्णों) तक सीमित करने की आवश्यकता होती है।

मैंने इसे अन्य संपादकों में एक शासक (स्तंभ पर प्रदर्शित ठोस रेखा) के उपयोग के माध्यम से या पाठ के रंग को बदलकर यह संकेत देने के लिए किया है कि यह खत्म हो गया है।

जब मैं एक लाइन में 79 वर्णों के करीब आ रहा हूं या जा रहा हूं, तो मुझे विम कैसे संकेत दे सकता है?

जवाबों:


64

आप एक शासक को एक विशिष्ट लाइन पर :set colorcolumn( :set ccलघु के लिए) विकल्प का उपयोग करके प्रदर्शित कर सकते हैं जो केवल विम 7.3 या बाद में उपलब्ध है।

set colorcolumn=80

यह उस कॉलम की पृष्ठभूमि का रंग लाल कर देगा, जिससे आपको काम करने के लिए एक दृश्य शासक मिलेगा।

डिफ़ॉल्ट colorcolumn का चित्र 80 पर सेट है

यदि आप लाल रंग के अलावा किसी अन्य रंग का उपयोग करना चाहते हैं (जो वास्तव में बाहर खड़ा है), तो आप इसके highlightलिए सेट करके रंग बदल सकते हैं ColorColumn

highlight ColorColumn ctermbg=0 guibg=lightgrey

कॉलम के लिए अनुकूलित रंग

आप ctermतर्क का उपयोग करके विम के टर्मिनल संस्करणों के लिए रंग सेट कर सकते हैं और तर्क का उपयोग करके विम के GUI संस्करण का उपयोग कर सकते guibgहैं। 0काला के लिए ASCII भागने कोड है, जो ग्रे जब चमकाया है (जो यह डिफ़ॉल्ट रूप से, है) का मूल्य है। मान lightgreyका उपयोग GVim जैसे Vim के GUI संस्करणों के लिए किया जाता है, ताकि पृष्ठभूमि का रंग हल्का ग्रे में बदल जाए।


10
तुम भी कई अल्पविराम से अलग colorcolumns हो सकता है!
२००

4
सम्मिलित हों और श्रेणी के साथ संयोजन करें, और आपके पास बहुत कम कोड वाले रंगीन कॉलम का एक गुच्छा हो सकता है। My .vimrc में है:execute "set colorcolumn=" . join(range(81,335), ',')
कोडी पोल

19

केविन के जवाब के लिए एक परिशिष्ट के रूप में, आप कई colorcolumns हो सकते हैं। जब मैं कोड करता हूं, तो मेरे पास कभी-कभी 80 कॉलम पर "सॉफ्ट" सीमा और 120 कॉलम में "हार्ड" सीमा होती है। इसलिए मुझे ,० पर एक लाइन चाहिए, और फिर १२० के बाद हर कॉलम को रंगीन करना होगा।

मैं इसके साथ करता हूं

let &colorcolumn="80,".join(range(120,999),",")

बेशक, यह आसानी से अन्य वरीयताओं को संशोधित किया जा सकता है।


14

विम 7.3 colorcolumnविकल्प लाता है , अन्य उत्तरों में बहुत अच्छी तरह से विस्तृत है।

हालाँकि, यदि आपके पास किसी कारण से संस्करण 7.3 नहीं है, तो आप अभी भी एक दृश्य संकेत प्राप्त कर सकते हैं कि आप विम की matchकार्यक्षमता का उपयोग करके एक विशेष कॉलम की संख्या को पार कर रहे हैं ( :help matchविवरण के लिए देखें)।

अनिवार्य रूप से, मैच कमांड आपको दिए गए नियमित अभिव्यक्ति से मेल खाते टेक्स्ट के लिए लगातार हाइलाइट बनाने की अनुमति देते हैं। :match ColorColumn "\%80v.""ColorColumn" समूह के साथ कॉलम 80 में पाठ को उजागर करेगा। आप निश्चित रूप से किसी भी हाइलाइट समूह और किसी भी स्तंभ मान को स्थानापन्न कर सकते हैं। यदि आप एक मजबूत दृश्य संकेत चाहते हैं, तो अभिव्यक्ति "\%>79v.\+"80 और उसके बाद के कॉलम को उजागर करेगी।

( \%80vमतलब "वर्चुअल कॉलम 80 में मैच", और \%>79vइसका मतलब है " वर्चुअल कॉलम 79 के बाद मैच :help /\%c। अधिक के लिए देखें ।"

यह दृष्टिकोण केवल तब ही उजागर होगा जब निर्दिष्ट कॉलम में मौजूद वास्तविक वर्ण हैं, हालांकि, यह नेत्रहीन की तुलना में कम सुसंगत बनाता है colorcolumn


4
व्यक्तिगत रूप से मुझे matches के कम सुसंगत दृष्टिकोण का पता चलता है, क्योंकि यह केवल उन पंक्तियों पर प्रकाश डालता है जहाँ मैं स्क्रीन के दाईं ओर एक (बड़ी) लाइन को दिखाने के बजाय 80-कॉलम की सीमा को पार कर रहा हूँ। इसलिए पायथन के लिए मेरे vimrc में मैं call matchadd('ColorColumn', '\(\%80v\|\%100v\)')(80 और 100 PEP 8 में सुझाए गए लम्बाई का उपयोग कर रहा हूं )
jalanb
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.