2010-01-13 19 views
58

हर बार जब मैं सीएसएस में एक चयनकर्ता जोड़ सकते हैं और मैं Enter प्रेस गुण इसे इस तरह समाप्त होता है परिभाषित करने के लिए:मैं विम में टैब आकार कैसे बदलूं?

#selector { 
     property: value; 
} 

(8-अंतरिक्ष टैब्स)

मैं विम कैसे कॉन्फ़िगर कर सकते हैं बनाने के लिए यह इस तरह है:

#selector { 
    property: value; 
} 

(4-अंतरिक्ष टैब)

+2

क्या आप 4 रिक्त स्थान चौड़ाई के एक टैब चाहते हैं? चार रिक्त स्थान? या 1 अंतरिक्ष चौड़ाई के चार टैब? वे अलग-अलग चीजें हैं, और आप स्पष्ट नहीं हैं। किसी भी मामले में, पढ़ने के साथ शुरू करें: वह ts,: वह sw, और: वह – abeyer

उत्तर

51

zoul के जवाब पर विस्तार:

autocmd Filetype css setlocal tabstop=4 

यह इतना है कि यह कर देगा:

आप एक विशेष फ़ाइल प्रकार संपादित करते हुए विशिष्ट सेटिंग्स का उपयोग करने के लिए सेटअप विम करना चाहते हैं, तो आप autocommands का उपयोग करना चाहेंगे टैब 4 रिक्त स्थान के रूप में प्रदर्शित होते हैं। स्थापना expandtab विम वास्तव में (उनमें से नंबर tabstop द्वारा नियंत्रित किया जा रहा है) जब आप टैब प्रेस रिक्त स्थान सम्मिलित करने के लिए कारण होगा; आप softtabstop का उपयोग बैकस्पेस ठीक से काम करने के लिए करने के लिए (जो है, खरोज को कम जब कि क्या होगा टैब, इस्तेमाल किया जाना चाहिए बजाय हमेशा एक समय में एक चार हटाना है) चाहते हो सकता है।

कैसे चीजें स्थापित करने के लिए, आप tabstop, shiftwidth, softtabstop और expandtab पर विम डॉक्स पढ़ने के लिए की आवश्यकता होगी के रूप में एक पूरी तरह से शिक्षित निर्णय करने के लिए। सबसे दिलचस्प बिट expandtab (:help 'expandtab) के तहत पाया जाता है:

वहाँ विम में टैब का उपयोग करने के लिए चार मुख्य तरीके हैं:

  1. हमेशा की तरह, 8 बजे 'tabstop' रखने 'softtabstop' की स्थापना की और ' shiftwidth 'से 4 (या 3 या जो भी आप पसंद करते हैं) और' noexpandtab 'का उपयोग करें। फिर विम टैब और रिक्त स्थान के मिश्रण का उपयोग करेगा, लेकिन एक टैब की तरह टाइपिंग और व्यवहार करेगा प्रत्येक 4 (या 3) वर्ण दिखाई देता है।

  2. सेट 'tabstop' और 'shiftwidth' जो कुछ भी आप पसंद करते हैं और 'expandtab' का उपयोग करें। इस तरह आप हमेशा रिक्त स्थान डालेंगे। 'टैबस्टॉप' बदलते समय स्वरूपण कभी गड़बड़ नहीं होगा।

  3. सेट 'tabstop' और 'shiftwidth' जो कुछ भी आप पसंद करते हैं और एक का उपयोग | modeline | फ़ाइल को फिर से संपादित करते समय इन मानों को सेट करने के लिए। फ़ाइल को संपादित करने के लिए विम का उपयोग करते समय केवल काम करता है।

  4. हमेशा सेट 'tabstop' और एक ही मूल्य के लिए 'shiftwidth', और 'noexpandtab'। इसके बाद लोगों को उपयोग की जाने वाली किसी भी टैबस्टॉप सेटिंग के लिए (प्रारंभिक इंडेंट्स के लिए) काम करना चाहिए। यदि आप ऐसा करते हैं तो रिक्त स्थान के रूप में डाले गए पहले गैर-रिक्त स्थान के बाद टैब होना अच्छा लगेगा। अन्यथा गठबंधन टिप्पणियां गलत होंगी जब 'टैबस्टॉप' बदल दिया जाएगा।

+0

इसके अलावा, बाद में अपने दिमाग को बदलने के बारे में बहुत चिंता न करें ... देखें ': retab' मदद करें (variant की जांच करें)। –

82
:set tabstop=4 
:set shiftwidth=4 
:set expandtab 

यह एक टैब वर्ण के बजाय चार अंतराल डाल देंगे। रिक्त स्थान थोड़ा अधिक "स्थिर" हैं, जिसका अर्थ है कि रिक्त स्थान के साथ इंडेंट किए गए टेक्स्ट ब्राउज़र और किसी भी अन्य एप्लिकेशन में दिखाई देंगे।

+21

विस्तारित करता है हां, लेकिन टैब अर्थपूर्ण हैं (प्रत्येक टैब का अर्थ इंडेंटेशन की 1 परत है), जबकि रिक्त स्थान पूरी तरह प्रस्तुतिकरण हैं। या दूसरे शब्दों में, टैब का उपयोग करने से अन्य लोग आपके कोड को प्रदर्शित करने के लिए अनुमति देंगे, हालांकि वे व्यापक हैं, जबकि रिक्त स्थान इसकी अनुमति नहीं देंगे। –

+1

ध्यान दें कि यदि आप ** टेक्स्ट> ** ** और ** '<' ** को अपने टेक्स्ट को ** टैब ** - कुंजी के समान दूरी पर ले जाने के लिए पसंद करते हैं, तो आप बस 'shiftwidth = 0' सेट कर सकते हैं' vimrc और इसके बारे में हमेशा के लिए भूल जाओ, क्योंकि यह विम बताता है कि आप हमेशा इसे 'tabstop' से मेल खाना चाहते हैं। – SeldomNeedy

3

आप आकार अक्सर बदलने की जरूरत है और आपके द्वारा अपने .vimrc फ़ाइल पर पूर्वनिर्धारित आदेशों जल्दी से प्राथमिकताएं बदल हो सकता है एक विशिष्ट फ़ाइल प्रकार को यह बाध्य करने के लिए नहीं करना चाहते हैं:

nmap <leader>t :set expandtab tabstop=4 shiftwidth=4 softtabstop=4<CR> 
nmap <leader>m :set expandtab tabstop=2 shiftwidth=2 softtabstop=2<CR> 

यह कुंजी के दो अलग-अलग सेट कुंजी \ t और \ m पर नक्शा करता है। आप इसे जो भी चाबियाँ चाहते हैं उसे पुन: जोड़ सकते हैं।

33

एक सत्र के लिए परिवर्तन करने के लिए इस आदेश का उपयोग करें:

:set tabstop=4 

परिवर्तन स्थायी बनाने के लिए यह ~/.vimrc या ~/.vim/vimrc में जोड़ें:

set tabstop=4 

इसमें सभी फ़ाइलें को प्रभावित करेगा, नहीं बस सीएसएस। के रूप में Michał's answer में कहा गया है

autocmd Filetype css setlocal tabstop=4 

: केवल सीएसएस फ़ाइलों को प्रभावित करने के लिए।

+1

यदि आप टैब को चार रिक्त स्थान के रूप में कार्य करना चाहते हैं, तो अन्य भाषाओं को @Zoul उत्तर में भी .vimrc में जोड़ना आवश्यक है; यानी, 'set shiftwidth = 4' और 'settt set' को भी .vimrc में जोड़ें। – qartal

+2

सवाल यह है कि "मैं विम में टैब आकार कैसे बदलूं?" – Keith

+1

यहां सबसे अच्छा जवाब +1 –

9

इस पृष्ठ पर कई उत्तरों वर्णित समस्या के लिए 'एकल उपयोग' फिक्स हैं। मतलब, अगली बार जब आप विम के साथ एक दस्तावेज़ खोलें, तो पिछली टैब सेटिंग्स वापस आ जाएंगी।

अगर कोई स्थायी रूप से टैब सेटिंग को बदलना चाहते है:

  • खोज/अपने .vimrc खोलने - instructions here
  • निम्न पंक्तियां जोड़ें: (more info here)

    set tabstop=4 
    set shiftwidth=4 
    set expandtab 
    
  • फिर फ़ाइल सहेजें और परीक्षण

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