2012-03-07 9 views
19

मैं एक बड़ी codebase, जहां प्रत्येक फ़ाइल अलग खरोज सम्मेलनों है पर काम कर रहा हूँ: टैब, 4 रिक्त स्थान, 3 रिक्त स्थान, आदिस्वचालित रूप से इंडेंटेशन शैलियों (टैब बनाम रिक्त स्थान) को पहचान सकते हैं?

मैं वर्तमान टैब पर डिफ़ॉल्ट और set shiftwidth=N expandtab smarttab कर जब मैं एक रिक्त स्थान-इंडेंट फ़ाइल के पार चलो , लेकिन यह कष्टप्रद है।

क्या विम, या प्लगइन में कोई कार्यक्षमता है, जो इसे पहचान सकता है, उदाहरण के लिए, वर्तमान बफर प्रति स्थान तीन रिक्त स्थान के साथ इंडेंटेशन का उपयोग करता है?

उत्तर

18

विभिन्न प्लगइन्स मौजूद हैं जो उस स्थिति को संभालने का प्रयास करते हैं। यहाँ कुछ मैं vim.org पर detect indent के लिए खोज के द्वारा पाया

+1

खोजी कुत्ता, DetectIndent की तुलना में बेहतर काम करने के लिए लगता है है । किसी भी कारण से, DetectIndent एक साधारण, लगातार स्वरूपित सी फ़ाइल पर गलत अनुमान लगाता है (इसमें आकार 2 टैब हैं और डिटेक्ट इंडेंट सोचता है कि यह आकार 4 है)। – Kat

2

अच्छा सवाल है, मैं का सामना करना पड़ रहा है कर रहे हैं वही समस्या भी, और हाल ही में मैंने ऐसा वीआई लिखा था खुद के लिए मीटर प्लगइन: https://github.com/luochen1990/indent-detector.vim

यह है निम्नलिखित विशेषताएं:

  • bufEnter और bufWrite पर स्वचालित रूप से मिश्रित इंडेंट और गूंज warnning का पता लगाने।
  • वर्तमान इंडेंटिंग शैली को स्वचालित रूप से फिट करने के लिए इंडेंट करने के बारे में स्विच सेटिंग।
  • पता लगाने का समय सीमित है, इसलिए आप को बड़ी फ़ाइलों को खोलने के बारे में चिंता करने की आवश्यकता नहीं है।

मैं यह अच्छी तरह से बनाया गया है लगता है, और नाम से जाना जाने की जरूरत है, GitHub पर एक मुद्दा पोस्ट अगर आप परीक्षण के अपने पांच मिनट में कोई सुझाव :)

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