2010-09-10 25 views
46

मैं white space से tab का उपयोग करना पसंद में केवल टैब (अंतरिक्ष) का उपयोग करनेकैसे vim

(दूसरों के सबसे से थोड़ा अलग हो सकता है) लेकिन मैं ने पाया जब मैं पंक्ति के अंत में Enter मारा, यह कुछ सफेद रिक्त स्थान जोड़ देगा, लेकिन टैब नहीं होगा। इसलिए, मुझे उन्हें हटाना होगा और टैब दबाएं।

मैं जानना चाहता vim स्थापित करने के लिए कैसे के रूप में चाहते हैं:

  1. उपयोग केवल टैब लाइनों
  2. एक टैब, 4 रिक्त स्थान की तरह लग रहा इंडेंट करने के लिए, लेकिन वास्तव में एक टैब
  3. जब हिट है enter एक पंक्ति के अंत में, नई लाइन केवल

के साथ शुरू की गई है, मैंने थोड़ी देर के लिए इसके लिए गुगल किया है, लेकिन एक अच्छा जवाब नहीं मिला है। अग्रिम


अद्यतन

जवाब @Alok अच्छी तरह से अधिकांश मामलों में काम करता है प्रदान की गई है में धन्यवाद। लेकिन मैंने अभी पाया, कभी-कभी, यह फ़ाइल प्रकार पर निर्भर करता है। उदाहरण के लिए, यदि आप haml फ़ाइल संपादित कर रहे हैं, और आपके vimfiles/indent/ में haml.vim है, तो सभी टैब space में परिवर्तित हो जाएंगे। इसलिए यदि आप केवल tab होना चाहते हैं, तो आपको संबंधित इंडेंट फ़ाइल को संशोधित (या हटाएं) चाहिए।

+0

इसके बजाय इंस्टॉल किए गए फ़ाइलों को संशोधित करने की, '$ HOME/vimfiles/के बाद/मांगपत्र/haml.vim' में अपने अधिभावी सेटिंग्स डाल प्रयास करें। अधिक जानकारी के लिए ': निर्देशिका के बाद सहायता' देखें। – Nefrubyr

+2

विभिन्न फ़ाइल प्रकारों के लिए अलग-अलग टैब/स्पेस वरीयताएं रखना आम है। Vimcasts.org पर अपना स्क्रीनकास्ट देखें, जो दिखाता है कि कैसे [विभिन्न फ़ाइल प्रकारों के लिए व्हाइटस्पेस वरीयताओं को सेट करें] (http://vimcasts.org/episodes/whitespace-preferences-and-filetypes/)। यह समाधान आपके vimrc का उपयोग करता है, लेकिन यदि आप कई अलग-अलग फ़ाइल प्रकार सेट अप करना चाहते हैं, तो आप Nefrubyr द्वारा सुझाए गए अनुसार, बाद की निर्देशिका का उपयोग करना पसंद कर सकते हैं। – nelstrom

+0

/बाद/इंडेंट चाल भी पाइथन फ़ाइलों में उन अजीब रिक्त स्थान से छुटकारा पाने के लिए काम करती है, देखने के लिए अपमानजनक फ़ाइल ftplugin/python.vim है, बस सेटलोकल के साथ लाइन कॉपी करें और इसे एक रिक्त फ़ाइल पर कॉपी करें जैसा कि @ Nefrubyr, इसे संपादित करें और स्वच्छता बहाल करें। – Paul

उत्तर

61

सेटिंग्स आप देख रहे हैं कर रहे हैं: एक पंक्ति के रूप में

set autoindent 
set noexpandtab 
set tabstop=4 
set shiftwidth=4 

:

set autoindent noexpandtab tabstop=4 shiftwidth=4 

autoindent अपने स्वाद पर निर्भर करता है, smartindent या cindent साथ प्रतिस्थापित किया जा सकता है। filetype plugin indent on पर भी देखें।

http://vim.wikia.com/wiki/Indenting_source_code

+0

@freewind ने कहा, '.haml' फ़ाइलों के साथ काम करते समय यह कोई काम अच्छी तरह से काम नहीं करता है। मेरे मामले में मैं ** vim janus ** का उपयोग करता हूं और मैं बस सुझाई गई एकल पंक्ति जोड़ता हूं लेकिन यह 'हैमल' फ़ाइलों के लिए काम नहीं करता है। कोई उपाय? –

+0

भी 'softtabstop = -1' जोड़ें। – Walf