Vim / gvim में एक लाइन लंबाई मार्कर कैसे सेटअप करें?


75

कुछ GUI टेक्स्ट एडिटर्स में एक वर्टिकल लाइन होती है जो लाइन लेंथ मार्कर के रूप में कार्य करती है (यह सोर्स कोड फ़ाइलों में लाइन्स को 80 चार्ट से कम रखने में मदद करती है)।

क्या vim / gvim में कुछ समान होना संभव है? मुझे शासक विम विकल्प के बारे में पता है , लेकिन बड़े पर्दे पर इसे नेत्रहीन रूप से पालन करना बहुत आसान नहीं है।

संपादित करें: जब अधिक जानने के लिए "colorcolumn" के लिए googling, मैंने पाया है कि यह प्रश्न https://stackoverflow.com/questions/235439/vim-80-column-layout-concerns का डुप्लिकेट है


एक अन्य साइट पर डुप्लिकेट ... stackoverflow.com/questions/235439/…
ट्रेवर बॉयड स्मिथ

जवाबों:


131

बस इस पर अमल करो

:set colorcolumn=72

आप तर्क को उस स्तंभ के बाईं या दाईं ओर के साथ -या +उस मार्कर को रखने के लिए तर्क को भी उपसर्ग कर सकते हैं textwidth, और यह स्तंभों की अल्पविराम से अलग की गई सूची को स्वीकार करता है। मुझे लगता है कि colorcolumnविकल्प केवल Vim 7.3 में है। देख

:help colorcolumn

8
वाह, विम मुझे विस्मित करना बंद नहीं करता है!
पीटर नोर

4
अच्छा! यह भी उपयोगी है कि कब columns=80, wrapसेट किया गया है और colorcolumn=81,161,241,321,401,481,561,641,721,801- पहले स्तंभ पर प्रकाश डाला के साथ 10 लिपटे लाइनों को दिखाता है।
अमीर

20

OSCON 2013 में डेमियन कॉनवे के "अधिक तुरन्त बेहतर विम" से:

highlight ColorColumn ctermbg=magenta
call matchadd('ColorColumn', '\%81v', 100)

यह चरित्र मैजेंटा (स्क्रीनशॉट में है DarkCyan) में हाइलाइट किया जा रहा है, जब लाइन 80-कैरेक्टर अधिकतम हो जाती है।

सक्षम हाइलाइटिंग के साथ विम

जीवीएम के लिए: यह सुनिश्चित करने के लिए कि यह काम करने के लिए आपकी फ़ाइल के अंतिम भाग में उन 2 लाइनों को स्थानांतरित करना सबसे अच्छा है .vimrc


हुह! मैं सिर्फ अपने जवाब बहुत इस ... छोटी सी दुनिया के बारे में इसी तरह के सवाल! superuser.com/questions/771558/…
lornix

मैंने यह उत्तर दिया, फिर याद आया कि मैं इसे gVim में नहीं कर सकता, इसलिए मैंने पूछा। ;)
इस्केक

वाह, यह वास्तव में बहुत अच्छा है! इस तरह की सुविधा है जिसे मैं देखना भी नहीं जानता। मैं उस पैटर्न का उपयोग कर रहा हूं '\$81v\S'जो केवल गैर-व्हाट्सएप पात्रों से मेल खाता है। इसका मतलब यह है कि हाइलाइट तब नहीं दिखाई देगा जब लाइन बिल्कुल 80 अक्षरों की लंबी हो (जो ऐसा कुछ है जो वास्तव में मुझे परेशान करता है)। अधिक जानकारी के लिए इसे देखें stackoverflow.com/questions/12985042/…
fvgs

1
मेरी पिछली टिप्पणी में कुछ सुधार करना चाहते हैं। $एक किया जाना चाहिए था %। इसी तरह, मैं अब पैटर्न का उपयोग करता हूं \%81v.क्योंकि यह सुनिश्चित करता है कि 81 वें कॉलम में किसी भी चरित्र के लिए 81 वां कॉलम हाइलाइट किया जाएगा, जो कि शायद आप चाहते हैं।
fvgs

2

आप यह कोशिश कर सकते हैं:

grep '.\{81\}' file

या

set colorcolumn=80

(या आशुलिपि समकक्ष)

set cc=80

या उपर्युक्त के रूप में:

match ErrorMsg '\%>80v.\+'

0

नीचे हैकिंग विम से एक अनाड़ी चाल है : किम शुल्ज द्वारा नवीनतम विम संपादक से सबसे बाहर निकलने के लिए एक रसोई की किताब

यह ErrorMsgकिसी भी रेखा के साथ (आमतौर पर चमकदार लाल) हाइलाइट करता है जो 80 से अधिक वर्णों पर जाता है। मेरे लिए अच्छा काम करता है।

function! RemoveWidthLimitWarnigns()
    silent! call matchdelete(4)
endfunction
function! InsertWidthLimitWarnings()
    call RemoveWidthLimitWarnigns()
    call matchadd("ErrorMsg", "\\%>79v.\\+", 10, 4)
endfunction

मैं इस स्निपेट के साथ क्या करने वाला हूं? बस इसे .vrc में छड़ी?
vtest 16

केवल कॉलिंग द्वारा सबसे पहले प्रयास करना :call matchadd("ErrorMsg", "\\%>79v.\\+", 10, 4)। लेकिन मैं अब इसकी सिफारिश नहीं करूंगा क्योंकि @garyjohn को कुछ बेहतर पता था
unperson325680
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.