2012-12-12 11 views
11

मैं किसी और के प्रोजेक्ट पर काम करना चाहता हूं, और वह इंडेंटेशन के लिए 4 रिक्त स्थान का उपयोग करता है। मैं 2 का उपयोग करता हूं, और मेरी स्क्रीन आराम से 4 रिक्त स्थान का उपयोग करके संपादित करने के लिए पर्याप्त नहीं है।क्या विम फ़ाइल में चार रिक्त स्थान रखते हुए, इंडेंटेशन के लिए दो रिक्त स्थान प्रदर्शित कर सकता है?

क्या मैं विम को इंडेंटेशन के लिए 2 रिक्त स्थान प्रदर्शित करने के लिए कॉन्फ़िगर कर सकता हूं, लेकिन फ़ाइल में 4 लिख सकता हूं?

उत्तर

0

यदि वह टैब की बजाय वास्तविक रिक्त स्थान का उपयोग करता है (जो यह लगता है), नहीं, तो आपके पास 4 रिक्त स्थान पर विम डिस्प्ले 2 रिक्त स्थान नहीं हो सकते हैं। हालांकि, आप सभी 4-स्पेस समूहों को प्रतिस्थापित करने के लिए निम्न आदेशों को बता सकते हैं टैब वर्ण, और फिर उन्हें 2 रिक्त स्थान के रूप में प्रदर्शित करें।

:set tabstop=4 ! display a tab as 4 columns 
:set shiftwidth=4 
:set noexpandtab 
:gg=G ! convert the whole file to tabs 
:set tabstop=2 !display a tab as 2 columns 
:set shiftwidth=2 

जब आप अपने काम प्रस्तुत करने के लिए तैयार हैं,

:set tabstop=4 
:set shiftwidth=4 
:set expandtab 
:%retab 

इसे वापस परिवर्तित करना चाहिए।

4

सहायता में विभिन्न टैब चौड़ाई के समान उपयोग केस के लिए एक उदाहरण है, :help retab-example देखें।

कि आधा/दोहरीकरण रिक्त स्थान के लिए अनुकूल:

:autocmd BufReadPost,BufWritePost * %substitute/^\(\+\)\1/\1/e 
:autocmd BufWritePre    * %substitute/^ \+/&&/e 
+0

बहुत बढ़िया तहत विस्तार किया जा करने के लिए ! क्या यह सभी फाइलों पर चलता है, या केवल वर्तमान वाला? –

+0

'*' के साथ, बिल्कुल। इसे प्रभावित करने के तरीके पर 'autocmd-pattern' मदद करें। –

6

यह वही है here कहा गया था के विपरीत है।

हाँ, आप कर सकते हैं! यदि आपके पास "छुपाएं" विकल्प है, तो आप इसे आजमा सकते हैं।

:syntax match spaces// conceal cchar= "Don't forget the space after cchar! 
:set concealcursor=nvi 
:set conceallevel=1 

यहाँ क्या इन आदेशों करते हैं:

  • सेट के लिए 2 अंतरिक्ष के लिए रिक्त स्थान 1
  • कर्सर के नीचे पाठ रखें प्रतिस्थापन चरित्र, सामान्य दृश्य के लिए छुपा, और सम्मिलित मोड
  • सक्षम करें एक चरित्र के साथ पाठ छिपाना

आपको अभी भी अपना tabstop, 01 सेट करना होगाऔर shiftwidth से 4, लेकिन और लगता है जैसा कि यह 2 है! हालांकि, जब आप फ़ाइल लिखते हैं, तो यह वास्तव में 4 है।

आप आड़ बंद करना चाहते हैं, तो आप कर सकते हैं दो चीजों में से एक:

  1. निकालें छिपाना नियम :syntax clear spaces या
  2. अनुमति दें छुपा पाठ कर्सर :set concealcursor=
+2

मुझे यह भी जोड़ने की आवश्यकता है: इस काम से पहले conceallevel = 1 सेट करें – timmow

+0

क्या इसके विपरीत कोई तरीका है? 4 रिक्त स्थान की तरह दिखने के लिए 2 रिक्त स्थान सेट करें? – Uri

+0

@Uri https://stackoverflow.com/questions/14514336/gvim-show-4-spaces-but-save-2-spaces-tabs देखें। नोट, मैंने कोशिश नहीं की है। – Balthamos

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