2013-01-09 32 views
17

समझाएं मैं अपनी Vim कॉन्फ़िगरेशन स्क्रिप्ट को अपडेट करने का प्रयास कर रहा हूं। मेरी ~/.vim निर्देशिका में कई उप-निर्देशिकाएं हैं और मुझे यकीन नहीं है कि वे क्या करते हैं, और न ही कुछ ऐसे हैं जो अनावश्यक प्रतीत होते हैं।कृपया विम की कॉन्फ़िगरेशन निर्देशिका पदानुक्रम

यहाँ मेरी ~/.vim निर्देशिका वृक्ष विशिष्ट प्रश्न के लिए की तरह

|-after 
|---ftplugin 
|---syntax 
|-autoload 
|-compiler 
|-doc 
|-ftplugin 
|---latex-suite 
|-----dictionaries 
|-----macros 
|-----packages 
|-----templates 
|---python 
|-indent 
|-plugin 
|-spell 
|-syntax 

दिखता है अब है।

  1. plugin बनाम ftplugin में क्या होता है?
  2. plugin और autoload के बीच क्या अंतर है?
  3. मुझे ~/.vim के अंतर्गत सीधे निर्देशिकाओं में after/... में कुछ कब रखना चाहिए?

उत्तर

16

जो भी plugin में चला जाता है भरी हुई है जब भी vim शुरू होता है, जबकि आप क्या ftplugin में डाल केवल विशिष्ट फ़ाइल प्रकार यह करने के लिए (इसलिए यदि आप एक फ़ोल्डर है वहाँ बुलाया अजगर सभी फाइलों को मेल खाती है के लिए लोड किया जाता है वहाँ लोड किया जाएगा जब आप एक अजगर फ़ाइल खोलें। autoload में आप कार्यों लिपियों plugin में परिभाषित करने के लिए इसी होनी चाहिए। जब ​​पहली बार से बुलाया यहाँ कार्यों केवल लोड किया जाएगा।

after में आप सेटिंग्स के लिए जो आप चाहते रखना चाहिए सामान्य प्लगइन लोडिंग से बदलें। एक एक्सा के रूप में मान लीजिए कि आपको सेटिंग्स पसंद है कि लेटेक्स के लिए कुछ प्लगइन आपको देता है, लेकिन यह आपके मैपिंग को आपके .vimrc में दोबारा परिभाषित करता है। आप इसे autocommands के साथ या बाद में सही परिभाषाओं को डालकर वापस कर सकते हैं।

+1

+1; संक्षिप्त और सही सारांश। –

+0

धन्यवाद @skeept। यदि मैं सही ढंग से समझता हूं, तो मुख्य प्लगइन्स को 'प्लगइन' या 'ftplugin' में रखें,' ऑटोलोड 'में चीजों का समर्थन करना और' बाद 'में अन्य सभी चीज़ों को ओवरराइड करना। सही बात? – jlconlin

+1

यदि आप ऐसा कुछ कर रहे हैं जो किसी विशिष्ट फ़ाइल प्रकार पर लागू होता है तो आपको ftplugin के साथ जाना चाहिए। प्लगइन में डाली गई सभी फ़ाइल प्रकारों पर लागू होने वाली किसी चीज़ के लिए, लेकिन यदि संभव हो तो इसे ऑटोलोड में लोड करने का प्रयास करें, और हाँ जो कुछ भी है, वह सबकुछ ओवरराइड करने के बाद है। मुझे लगता है कि एडुआन द्वारा दिए गए लिंक में एक अच्छा संसाधन है, आपको इसे पढ़ना चाहिए। – skeept

4

ये सभी निर्देशिका runtimepath का हिस्सा हैं। :h runtimepath प्रयास करें और यह अपने जवाब के लिए लिंक करेगा:

  1. चेक :h write-plugin
  2. चेक :h autoload-functions
  3. after/... स्क्रिप्ट पिछले क्रियान्वित कर रहे हैं, इसलिए वे पहले स्क्रिप्ट की सेटिंग को ओवरराइड कर सकते हैं। आप :h runtimepath में इसके बारे में अधिक पढ़ सकते हैं।
6

मुझे लगता है कि यह समझा जाएगा कि वास्तव में क्या प्रत्येक फ़ोल्डर करता है: http://learnvimscriptthehardway.stevelosh.com/chapters/42.html

इसके अलावा :h runtimepath जांच करना चाह सकते।

उम्मीद है कि इससे मदद मिलती है। :)

+0

लिंक के लिए धन्यवाद! – Kevin