2011-02-27 15 views
13

यह एक बेवकूफ सवाल की तरह लगता है, लेकिन मुझे इंटरनेट पर (या वीआईएम सहायता में) कोई जवाब नहीं मिल रहा है। मैं मैक ओएस एक्स पर वीआईएम 7.2 का उपयोग कर रहा हूं। मैं बस अपनी लाइनों को 72 अक्षरों पर लपेटना चाहता हूं, लेकिनवीआईएम टेक्स्टविड्थ का कोई प्रभाव नहीं है

:set textwidth=72 

का कोई प्रभाव नहीं है। टेक्स्टविड्थ सही ढंग से सेट किया जा रहा है (मैं देख सकता हूं कि जब मैं सिर्फ "टेक्स्टविड्थ सेट करता हूं"), लेकिन न तो मौजूदा लाइनें और न ही नई लाइन जिन्हें मैं टाइपविड्थ सेट करने के बाद टाइप करता हूं, लपेटा जाता है। अगर मैं एक नई लाइन शुरू करता हूं, तब भी लपेटता नहीं है। फ़ाइल खोलें और बंद करें, कोई बदलाव नहीं। मैंने यह भी कोशिश की है: बिना किसी प्रभाव के wrappargin = 72 (textwidth = 0 के साथ) सेट करें।

मुझे यहां क्या याद आ रही है?

उत्तर

8

क्या करता है

:set formatexpr? 
:set indentexpr? 
:set cindent? 
:set filetype? 
:set paste? 
:filetype 

प्रिंट।

उनमें से कम से कम एक (और मुझे लगता है कि उनमें से सभी) textwidth के लिए सेटिंग ओवरराइड करेंगे।

उदाहरण के लिए, यदि आप सी स्रोत फ़ाइल संपादित कर रहे हैं, तो सी इंडेंट नियम textwidth ओवरराइड करते हैं।

+2

भी कोशिश 'जानकारी के लिए :h fo-table देखें: पेस्ट सेट'?। वह भी हस्तक्षेप कर सकता है। – patrickvacek

+0

मेरे लिए यह 'सेट पेस्ट' था जिसे मैंने एक नेता अनुक्रम में मैप किया है। धन्यवाद @patrickvacek – OregonTrail

5

विम अनुरोध किए जाने तक कुछ भी नहीं करेगा। textwidth का वर्तमान में संपादित लाइनों के लिए असर होगा यदि आपके पास t (केवल गैर-टिप्पणियों के लिए), c (केवल टिप्पणियों के लिए) या formatoptions (यदि a मौजूद नहीं है, तो यह केवल तब होगा जब आप मार्जिन तक पहुंच जाएंगे textwidth द्वारा सेट), या यदि आप अपने पाठ को दोबारा सुधारने के लिए gq का उपयोग करते हैं। अगर मैं गलत नहीं कर रहा हूं, तो आप formatexpr या formatprg सेट कर सकते हैं ताकि textwidth को अनदेखा कर दिया जा सके।

9

पूरे बफर में नई टेक्स्ट चौड़ाई लागू करने के लिए gggqG आज़माएं।

  • gg का अर्थ है: बफर की शुरुआत
  • gq का मतलब है पर जाएँ: पुन: फ़ॉर्मेट पाठ गति
  • G का मतलब है में शामिल: बफर

के अंत में जाना (यह होगा काम करता है अगर प्रारूप विकल्प सही तरीके से सेट हैं, जैसा कि ज़ीक्स पोस्ट में विस्तृत है)

दूसरी तरफ, आप अपना मौजूदा टेक्स्ट भी प्रदर्शित कर सकते हैं आपकी फ़ाइल की शुरुआत या अंत में modeline जोड़कर 72 वर्णों की चौड़ाई। :help modeline

vim:tw=72 जैसे कुछ काम करना चाहिए।

6

मैं एक ही प्रश्न का उत्तर ढूंढ रहा था और मुझे वीआईएम दस्तावेज़ों में समाधान मिलने से पहले थोड़ा सा घबराहट करना पड़ा। तो, मैंने सोचा कि मैं धागे को अद्यतन करूंगा और दूसरों को समय बचाऊंगा।

मेरे मामले में समस्या यह थी कि डिफ़ॉल्ट ftplugin textwidth को अक्षम कर रहा था।

बस अपने .vimrc को अपडेट करने के साथ (:set tw=79 && :set formatoptions+=t) काम नहीं करेगा क्योंकि vprc के बाद fplugins sourced हैं।

ये कदम उठाएँ कि मैं पीछा कर रहे हैं:

1) पता लगाना क्या अपने वर्तमान formatoptions रूप vimdocs ने सुझाव दिया (vim अंदर)

:set formatoptions? 
formatoptions=croql (note no 't') 

2) एक filetype.vim फ़ाइल बनाने (http://vimdoc.sourceforge.net/htmldoc/filetype.html#ftplugin-overrule)

Overrule the settings after loading the global plugin. 
You must create a new filetype plugin in a directory from the end of 
'runtimepath'. For Unix, for example, you could use this file: 
    vim ~/.vim/after/ftplugin/fortran.vim 
In this file you can change just those settings that you want to change. 

3) पंक्ति जोड़ें :set formatoptions+=t & &उस फ़ाइल में 0।

वोला! अगली बार जब आप फ़ाइल खोलेंगे तो यह टेक्स्टविड्थ को आपके वांछित पात्रों पर सेट करेगा।

एक डिबगिंग सहायता के रूप में आप हमेशा यह जांच सकते हैं कि कौन सी फ़ाइल वर्बोज़ के साथ अपना आदेश तैयार करके आपकी vimrc सेटिंग को ओवरराइड कर रही है। तो उदाहरण के लिए अगर मैं जो formatoptions अंतिम अपडेट जाँच करना चाहते हैं, मैं

:verbose set formatoptions? 
formatoptions=croqlt 
Last set from ~/.vim/after/ftplugin/fortan.vim 
0

मदद मिल सकती है मैं इस एक ही मुद्दा था और पाया निम्नलिखित मेरे लिए मुद्दा काफी अच्छी तरह से हल टाइप करेंगे:

autocmd FileType python setlocal textwidth=79 formatoptions+=t 

python बदलने के लिए अपनी पसंद के फ़ाइल प्रकार होने के लिए स्वतंत्र महसूस (जैसे * या अल्पविराम पृथक सूची python,ruby,go,sh,javascript)

की formatoptions

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