<टैब> मारते समय और ऑटोइंडेंट लागू होने पर टैब का आकार बढ़ाएं


22

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

हालाँकि, एक सवाल।

यदि मैं टैब कुंजी को हिट करता हूं, तो यह 2 को सम्मिलित करता है, लेकिन विम का ऑटोइंडेंट अभी भी डाल रहा है 4. मैं उस 2 को बनाने के लिए क्या बदलूं?

एक और असंबंधित प्रश्न: कौन सी इंडेंट शैली सी और इसी तरह की भाषाओं के लिए सबसे अच्छी है? मैं 1TBS का उपयोग कर रहा हूं, लेकिन चुनने के लिए बहुत सारे हैं। क्या उनमें से कोई अधिक पेशेवर या पसंदीदा है?

जवाबों:


17

' shiftwidth' ' ' के समान मान पर सेट करने का प्रयास करें tabstop। अभी तक बेहतर है, यदि आप विम के हालिया पर्याप्त संस्करण का उपयोग कर रहे हैं, तो ' shiftwidth' को 0 पर सेट करें और जो कुछ भी सेट है, वह डिफ़ॉल्ट होगा tabstop


यह वही है जिसे मैं देख रहा था। वर्तमान tsमें 2, 4 या 8 के रूप में सेटिंग के बीच बहस कर रहे हैं
user341814

मैं गैर-कोड फ़ाइलों पर 8 का उपयोग करता हूं, और भाषा के आधार पर या तो 2 या 4 और कितना घोंसला होता है।
Heptite

मैं फिलहाल सी ही करता हूं।
user341814

33

विम इंडेंटेशन विकल्प

विम मुख्य रूप से इंडेंटिंग आकार के लिए 3 सेटिंग्स का उपयोग करता है:

  • tabstop, ts: जब विम एक फ़ाइल आप कर रहे हैं खोलने में एक सारणीकरण का सामना करना पड़ता है, यह के रूप में {} ts रिक्त स्थान (देखें टैब प्रदर्शित करता है tabstop मदद , या प्रकार :help tabstopविम में)।
  • softtabstop, sts: आप एक फ़ाइल और प्रेस संपादित कर रहे हैं जब टैब कुंजी, विम (देखें डाला सारणीकरण की चौड़ाई को परिभाषित करने के लिए इस सेटिंग का उपयोग करता softtabstop मदद या लिखने :help softtabstopविम में)।
  • shiftwidth, sw: स्थानों की संख्या विम का उपयोग करता है जब इंडेंट, या तो autoindent सामान या हमेशा की तरह उपयोग करते हुए >>, <<आदेशों। जैसा कि हेपेटाइट ने देखा, यह वह है जो आप इस विशेष मामले में देख रहे थे। और विम के हाल के संस्करण वास्तव में आपको इस विकल्प को परिभाषित नहीं करने की अनुमति देते हैं, shiftwidthफिर इसके द्वारा परिभाषित मूल्य लेंगे tabstop। काफी आसान ( बदलाव मदद देखें )।

उदाहरण

उदाहरण के लिए, यदि आप निम्न सेटिंग्स का उपयोग करते हैं:

set sts=4
set ts=2
set sw=8

ये निम्नलिखित व्यवहार का उत्पादन करेंगे:

  1. फ़ाइल में सारणीकरण सम्मिलित करने से एक इंडेंटिंग 4 रिक्त स्थान होगा।
  2. जैसा कि आपका tabstop2 पर सेट है, यह वास्तव में 2 टैब के बराबर होगा। यह जांचना काफी आसान है, केवल सारणीकरण प्रदर्शित करने के लिए विकल्पों listऔर listcharsविकल्पों का उपयोग करें।
  3. यदि आप एक लाइन का उपयोग करते हुए इंडेंट करते हैं >>, तो इंडेंटेशन 8 रिक्त स्थान चौड़ा होगा (इसलिए, tabstopमूल्य के आधार पर, 4 टेबल्स के बराबर, ऊपर के समान)।

यहाँ छवि विवरण दर्ज करें

विम इंडेंटेशन सिफारिशें (विम प्रलेखन से)

से tabstop(मदद :help tabstopविम में):

There are four main ways to use tabs in Vim:
  1. Always keep 'tabstop' at 8, set 'softtabstop' and 'shiftwidth' to 4
    (or 3 or whatever you prefer) and use 'noexpandtab'.  Then Vim
    will use a mix of tabs and spaces, but typing <Tab> and <BS> will
    behave like a tab appears every 4 (or 3) characters.
  2. Set 'tabstop' and 'shiftwidth' to whatever you prefer and use
    'expandtab'.  This way you will always insert spaces.  The
    formatting will never be messed up when 'tabstop' is changed.
  3. Set 'tabstop' and 'shiftwidth' to whatever you prefer and use a
    |modeline| to set these values when editing the file again.  Only
    works when using Vim to edit the file.
  4. Always set 'tabstop' and 'shiftwidth' to the same value, and
    'noexpandtab'.  This should then work (for initial indents only)
    for any tabstop setting that people use.  It might be nice to have
    tabs after the first non-blank inserted as spaces if you do this
    though.  Otherwise aligned comments will be wrong when 'tabstop' is
    changed.

मैं व्यक्तिगत रूप से मुख्य रूप से दूसरे समाधान का उपयोग करता हूं, जिसमें 2 रिक्त स्थान हैं।

set ts=2
set sts=2
set et     "expand tabs to spaces

-1

Http://vim.wikia.com/wiki/Indenting_source_code के अनुसार , 'filetype plugin indent on' कमांड से प्रोग्राम को Vet स्थापना के इंडेंट उपनिर्देशन में स्थित filetype-specific indentation स्क्रिप्ट का उपयोग करने का कारण होगा। वह पृष्ठ यह भी बताता है कि C और C ++ फ़ाइलों में 'cindent' का उपयोग स्वचालित रूप से किया जाता है, और आपको उस कमांड को मैन्युअल रूप से उपयोग करने की आवश्यकता नहीं होनी चाहिए।

मैं विम से बहुत परिचित नहीं हूं, क्योंकि मैं इसका उपयोग कुछ सामयिक बुनियादी पाठ-संपादन के लिए करता हूं, लेकिन मैं स्वयं ही उस कोड के लिए विम के डिफ़ॉल्ट ऑटोइंडेंट आकार का उपयोग करने के लिए 'cindent' कमांड जारी करने का प्रयास करूंगा। यदि वह काम नहीं करता है, तो आप 'इनडायलट प्लग इन इंडेंट' पर प्रयास कर सकते हैं और वांछित इंडेंट प्राप्त करने के लिए स्क्रिप्ट्स को स्वयं संपादित कर सकते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.