मैं टेक्स्ट के 80 कॉलमों में gvim की विंडो चौड़ाई कैसे सेट कर सकता हूं, साथ ही लाइन नंबर दिखाने के लिए आवश्यक हैं


9

मैं के साथ gvim का उपयोग करता हूं

set number

मेरे में .vimrcतो यह हर लाइन से पहले लिननम्बर, प्लस एक स्थान दिखाता है।

यदि दस्तावेज़ में 10 से कम रेखाएँ हैं, तो यह 2 कॉलम लेता है, यदि इसमें 10, 3 कॉलम और इतने ही हैं।

अगर मैं डालूं

set lines=40 columns=80

में .gvimrc, यह कोड के 78 कॉलम और लिननंबर प्लस गति के लिए, या 77 + 3 और इतने पर दिखाएगा।

मैं चाहूंगा कि विंडो की चौड़ाई 80 कॉलम पर सेट की जाए + जो भी संख्या में कॉलम को लिननम्बर दिखाना आवश्यक हो।

इसे गतिशील होने की आवश्यकता नहीं है, लेकिन मैं किसी दिए गए फ़ाइल की लाइनों की संख्या को पढ़ने और उसके columnsअनुसार सेट करने में सक्षम होना चाहता हूं । (बेशक, एक गतिशील समाधान वास्तव में साफ होगा, लेकिन आवश्यक नहीं)

जवाबों:


9

इसे अपने ~ / .vimrc में आज़माएँ:

au BufRead * let &numberwidth = float2nr(log10(line("$"))) + 2
          \| let &columns = &numberwidth + 80

हर बार जब आप एक बफर लोड करते हैं (यानी, एक फ़ाइल खोलें), जो सबसे बड़ी लाइन नंबर दिखाने के लिए आवश्यक कॉलम की संख्या निर्धारित करेगा, उसके अनुसार 'नंबरवर्क' विकल्प सेट करें, और अपने टेक्स्ट के लिए उस नंबर प्लस 80 पर 'कॉलम' सेट करें। ।


धन्यवाद! फ़ाइल खोलते समय यह बहुत अच्छा काम करता है। किसी भी विचार कैसे टैब स्विचन जब भी ऐसा हो? अग्रिम में धन्यवाद।
एल्टन कार्वाल्हो

1
विम के ऑटोकॉमैंड इवेंट में सूचीबद्ध हैं :help autocommand-events। उनमें से है TabEnter, इसलिए आप ऊपर दिए गए उदाहरण BufReadद्वारा प्रतिस्थापित करने का प्रयास कर सकते BufRead,TabEnterहैं और देखें कि क्या वह आपको वह व्यवहार देता है जो आप चाहते हैं। मैंने स्वयं उस घटना के उदाहरण का परीक्षण नहीं किया है।
गैरीजोन

@Garyjohn को धन्यवाद, TabEnter ने उम्मीद के मुताबिक काम किया। हो सकता है कि बाद में मैं उन ऑटोकॉमंड-घटनाओं के साथ खेलूंगा। वे eally उपयोगी हैं!
एल्टन कारवाल्हो

1
@david_nash: 'numberwidth'केवल लॉगरिदमिक रूप से फ़ाइल में लाइनों की संख्या के साथ बढ़ता है, इसलिए यदि आप क्षैतिज स्थान को 'number'बिल्कुल सक्षम कर सकते हैं, तो मुझे नहीं लगता कि आपको इसे सीमित करने के बारे में चिंता करनी होगी।
गैरीजोन

1
@ जोनाथनहार्टली: यह एक टर्नरी ऑपरेटर ( :help expr1) के साथ या अगर / एंडिफ (जैसे, :help options-in-terminal) के साथ इसे नियंत्रित करना काफी आसान होगा । जब समस्या बदली है और कॉलम 'number'बदला गया है। मैंने OptionSet ऑटोकॉमैंड इवेंट का उपयोग करने के बारे में सोचा, लेकिन :help OptionSetकहते हैं कि इस इवेंट को संसाधित करते समय एक विकल्प को रीसेट करना एक बुरा विचार है।
गैरीजोन

2

मैं उपयोग करता हूं

set lines=24 columns=84

मेरे $ HOME / .gvimrc में जो मुझे वो चाहिए जो आप चाहते हैं। मैं शायद ही कभी (यदि कभी भी) ऐसी फाइलें रखता हूं जो 999 लाइनों की लंबी होती हैं तो यह मेरे लिए काम करती हैं।


Thats मैं क्या कर रहा था, लेकिन पाठ के बिल्कुल 80 कॉलम रखना अच्छा है क्योंकि मैं एक पंक्ति में 81 वर्णों को समाप्त करने से रोक सकता हूं, जो कोई बड़ी बात नहीं है, लेकिन बचने के लिए अच्छा है।
एल्टन कार्वाल्हो

2

मैंने 5, और फिर 5, (85 + 5) के कॉलम सेट करने की संख्या निर्धारित की है, जो 0 लाइनों से एक मिलियन लाइनों तक की फाइलों के लिए अच्छा होना चाहिए।

यहाँ आपको (डिफ़ॉल्ट) ~ / .vimrc फ़ाइल डालनी होगी

set numberwidth=5  "Good for files upto a million lines
set columns=85
set nu

आप देखेंगे कि लाइन नंबर डिफॉल्ट '% d' फॉर्मेट के बजाय '% 5d' (5 से ऊपर की संख्या है) के साथ फॉर्मेट किए गए हैं, लाइन नंबरों से पहले थोड़ी-बहुत अचल संपत्ति बर्बाद कर रहे हैं, लेकिन स्थिरता बनाए रखते हैं।


सुपर उपयोगकर्ता में आपका स्वागत है। कृपया ध्यान रखें कि आपने एक प्रश्न का उत्तर पोस्ट किया है जो बहुत पुराना है। हालाँकि ऐसा करने में कुछ भी गलत नहीं है, बस ध्यान रहे आपको प्रतिक्रिया नहीं मिल सकती है।
चार्लीआरबी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.