सबसे पहले, Tabमैनुअल इंडेंटेशन के लिए विम में कुंजी का उपयोग न करें । विम में इंडेंटेशन राशि को मैन्युअल रूप से बढ़ाने या घटाने के लिए इंसर्ट मोड में एक जोड़ी कमांड होती है। उन आदेशों हैं Ctrl-Tऔर Ctrl-D। इन आदेशों के मूल्यों का पालन tabstop, shiftwidthऔर expandtab, और रिक्त स्थान और टैब (टैब की अधिकतम संख्या रिक्त स्थान की किसी भी आवश्यक नंबर के बाद) का सही मिश्रण बनाए रखें।
दूसरे, इन मैनुअल इंडेंटिंग कुंजियों का वैसे भी बहुत उपयोग करने की आवश्यकता नहीं है यदि आप स्वचालित इंडेंटेशन का उपयोग करते हैं।
यदि आपको परेशान Ctrl-Tकरने के बजाय Tab, आप इसे हटा सकते हैं:
:imap <Tab> ^T
आप भी कर सकते हैं रीमेक Shift-Tabकरने के लिए Ctrl-D:
:imap <S-Tab> ^D
यहाँ ^ T और ^ D शाब्दिक नियंत्रण वर्ण हैं जिन्हें सम्मिलित किया जा सकता है Ctrl-VCtrl-T।
जगह में इस मानचित्रण के साथ, आप अभी भी उपयोग कर रहे बफर में शाब्दिक टैब टाइप कर सकते हैं Ctrl-VTab। ध्यान दें कि यदि आप ऐसा करते हैं, भले ही :set expandtabआप चालू हों, आपको एक अनएक्सपेन्डेड टैब कैरेक्टर मिलता है।
<Tab>मानचित्र के समान प्रभाव का उपयोग करके प्राप्त किया जाता है :set smarttab, जो स्मार्ट व्यवहार करने के लिए एक पंक्ति के सामने बैकस्पेस का कारण बनता है।
में smarttabमोड, जब Tabएक लाइन के शुरू में नहीं किया जाता है, यह कोई विशेष अर्थ नहीं है। यह मेरे उपरोक्त मानचित्रण से अलग Tabहै Ctrl-T, क्योंकि Ctrl-Tएक पंक्ति में (कहीं भी सम्मिलित मोड में) उपयोग किया जाना उस रेखा के इंडेंटेशन को बढ़ा देगा।
अन्य उपयोगी मैपिंग हो सकती है:
:map <Tab> >
:map <S-Tab> <
अब हम कुछ लाइनों का चयन कर सकते हैं, और Tabउन्हें खत्म करने के लिए हिट कर सकते हैं । या फिर Tabअपना इंडेंटेशन बढ़ाने के लिए एक लाइन (कमांड मोड में) पर दो बार मारा ।
आप उचित खरोज प्रबंधन आदेशों का उपयोग करते हैं, तो सब कुछ तीन मापदंडों के द्वारा नियंत्रित किया जाता है: shiftwidth, tabstopऔर expandtab।
shiftwidthपैरामीटर अपने खरोज आकार को नियंत्रित करता; यदि आप चार अंतरिक्ष संकेत, उपयोग :set shiftwidth=4, या संक्षिप्त नाम चाहते हैं :set sw=4।
यदि केवल यह किया जाता है, तो रिक्त स्थान और टैब के मिश्रण का उपयोग करके इंडेंटेशन बनाया जाएगा, क्योंकि noexpandtabडिफ़ॉल्ट है। उपयोग:set expandtab । यह टैब वर्णों का कारण बनता है जो आप रिक्त स्थान में विस्तार करने के लिए बफर में टाइप करते हैं, और केवल रिक्त स्थान का उपयोग करने के लिए विम-प्रबंधित इंडेंटेशन के लिए।
कब expandtabहै, और यदि आप सभी उचित Vim तंत्रों के माध्यम से अपने इंडेंटेशन का प्रबंधन करते हैं, तो मूल्य tabstopअप्रासंगिक हो जाता है। यह नियंत्रित करता है कि फ़ाइल में होने पर टैब कैसे दिखाई देते हैं। यदि आपके पास है set tabstop=8 expandtabऔर फिर उपयोग करने वाली फ़ाइल में एक हार्ड टैब चुपके है Ctrl-VTab, तो यह हमेशा की तरह अगले 8-कॉलम-आधारित टैब स्थिति के लिए एक संरेखण पैदा करेगा।