2009-06-12 9 views
102

मैं अपनी वास्तविक विंडो चौड़ाई के बावजूद, 80 अक्षरों पर कुछ कोड लपेटने के लिए विम की soft wrap क्षमता (:set wrap) का उपयोग करना चाहता हूं।मनमानी चौड़ाई की खिड़की में विम में 80 अक्षरों पर नरम लपेटें

मैं अभी तक यह करने के लिए एक रास्ता खोजने के लिए सक्षम नहीं किया गया है - सभी नरम रैपिंग खिड़की की चौड़ाई

  • textwidth और wrapmargin कठिन रैपिंग के लिए दोनों कर रहे हैं से बंधा लगता है (वे न्यू लाइन वर्ण सम्मिलित फ़ाइल में)
  • कई खिड़कियों में ऊर्ध्वाधर विभाजन और :vertical resize 80 (संभावित रूप से :set breakat= के साथ किसी भी चरित्र पर ब्रेक की अनुमति देने के लिए) के साथ काम करने के लिए (हालांकि यह थोड़ा हैकिश है) पर, लेकिन लाइन के रूप में :set number का उपयोग करते समय टूट जाता है संख्याएं कॉलम की एक चरणीय संख्या लेती हैं (फ़ाइल की लंबाई के आधार पर) और ये 80 का हिस्सा हैं।

क्या यह विम में ऐसा करने का कोई तरीका है? It doesn't look promising, according to other sources

अभी मेरा अनुमान है कि मेरी डिफ़ॉल्ट खोज के रूप में /^.\{80}\zs.\+ है, इसलिए इसे कम से कम हाइलाइट किया गया है। मैंने इसके लिए :syntax आइटम जोड़ने के बारे में सोचा, लेकिन जब यह अन्य वाक्यविन्यास वस्तुओं को ओवरलैप करता है तो टूट गया, इसलिए मैंने उस विचार को छोड़ दिया।

+0

दरअसल, आपने डिफ़ॉल्ट खोज कैसे स्थापित की? – thethinman

+2

क्या आपको कोई जवाब मिला है? मेरी भी यही समस्या है। –

+1

क्या आपको कोई जवाब मिला? नीचे दिया गया क्या काम किया गया था? – Angela

उत्तर

32

आप लाइन नंबर कॉलम के लिए :set numberwidth=6 के माध्यम से बड़ी न्यूनतम चौड़ाई निर्धारित कर सकते हैं और फिर आप :set columns=86 या अन्यथा अपनी विंडो को उचित आकार में बदल सकते हैं। यदि आप इसमें एक लाख लाइनों वाली फ़ाइल संपादित करते हैं, तो आपको परेशानी हो सकती है, लेकिन यह असंभव है। आप इस तरह से स्क्रीन रीयल एस्टेट के 6 कॉलम बर्बाद कर रहे हैं। तो अभी भी सभी प्रकार की समस्याएं हैं।

:match का उपयोग करके आप 80 वें कॉलम को हाइलाइट कर सकते हैं जैसे here और here

इसके अलावा मुझे ऐसा करने का कोई तरीका नहीं दिख रहा है। ऐसा लगता है कि यह एक अच्छी सुविधा होगी हालांकि।

+0

दुर्भाग्य से vim विंडो आकार बदलने पर कॉलम सेटिंग नहीं रखता है। यह टाइलिंग विंडो प्रबंधकों के साथ एक दुर्भाग्यपूर्ण स्थिति की ओर जाता है जहां खिड़की बहुत व्यापक है तो 80 कॉलम तक मुलायम लपेटने का कोई अच्छा तरीका नहीं है। – gravitation

+0

यह काम करता है, लेकिन यह चिपचिपा नहीं है। मुझे लगता है कि अगला चरण आपके इच्छित फाइल प्रकारों के लिए कॉलम को नए वांछित आकार में रखने के लिए एक ऑटोकॉम सेट करना है। – xer0x

1

क्या आपने 'linebreak' को आजमाया है?

 *'linebreak'* *'lbr'* *'nolinebreak'* *'nolbr'* 
    'linebreak' 'lbr' boolean (default off) 
     local to window 
     {not in Vi} 
     {not available when compiled without the |+linebreak| 
     feature} 
If on Vim will wrap long lines at a character in 'breakat' rather 
than at the last character that fits on the screen. Unlike 
'wrapmargin' and 'textwidth', this does not insert <EOL>s in the file, 
it only affects the way the file is displayed, not its contents. The 
value of 'showbreak' is used to put in front of wrapped lines. 
This option is not used when the 'wrap' option is off or 'list' is on. 
Note that <Tab> characters after an <EOL> are mostly not displayed 
with the right amount of white space. 
+1

हम्म ... लेकिन 'ब्रेकैट' सिर्फ एक पैटर्न है (लंबाई नहीं), इसलिए मुझे नहीं लगता कि मैं 80 पर नरम लपेटने के लिए इसका उपयोग कैसे कर सकता हूं .... – rampion

+0

हमम, मुझे आश्चर्य है कि यह बनाना संभव है एक रेगेक्स जो उन शब्दों से मेल खाएगा जिनकी कुल लंबाई (साथ ही बीच में सफेद जगह) एन वर्णों से कम या बराबर होती है। –

+0

@ शेन क्रेइटन-यंग: '^। {, 80} \ b' उन लोगों के लिए करेगा जो सॉफ्ट/विस्तार टैब का उपयोग करते हैं। ध्यान दें कि perl regex है, vim regex नहीं। –

15

मैं नरम चादर के लिए एक समाधान नहीं है, लेकिन विम 7.3 के रूप में एक स्तंभ, अंकन के लिए के रूप में (2010-08-15 जारी) :set colorcolumn=80 स्तंभ 80 पर प्रकाश डाला जाएगा रंग पर निर्भर करेगा आपके वाक्यविन्यास फ़ाइल।

Vim 80 column layout concerns, :h colorcolumn देखें।

+0

उद्धरण वैध यूआरएल नहीं हैं इसलिए यह समझ में आता है। एंकर नाम में अमान्य यूआरएल वर्ण नहीं होना चाहिए, इसलिए अन्य साइट डेवलपर्स की त्रुटियों को ठीक नहीं करना चाहिए। –

+1

छाया विज़ार्ड मेरे उत्तर के पिछले संशोधन का जिक्र कर रहा है जिसमें मुझे आश्चर्य है कि मार्कडाउन का उपयोग करके URL में सिंगल कोट्स को कैसे रखा जाए। फिर [ib सुझाया गया] (http://stackoverflow.com/revisions/6322217/2)% 27 का उपयोग करके, जो काम करता था। धन्यवाद, आईबी। – ftvs

+0

हाल ही में पता चला कि पिछले 80 ~ 'कॉलम को केवल हाइलाइट करने के लिए कैसे करें: w: eighty_column_match = matchadd ('ColorColumn', '\% 81v। \ +', 100)' – rampion

10

इस प्रयास करें:

set columns=80 
autocmd VimResized * if (&columns > 80) | set columns=80 | endif 
set wrap 
set linebreak 
set showbreak=+++ 

आप निकाल सकते हैं if (&columns > 80) | आप हमेशा चाहते हैं, तो 80 कॉलम।

संबंधित मुद्दे