जवाबों:
सबसे अच्छी विधि है उन सेटिंग्स को अंदर रखना ~/.vim/after/ftplugin/<filetype>.vim।
HTML के लिए (यह मानकर कि आपको 4 वर्णों वाले टैब चाहिए):
~/.vim/after/ftplugin/html.vim
setlocal shiftwidth=4
setlocal softtabstop=4
setlocal noexpandtab
एक फुटप्लगिन का उपयोग करना ऑटोकॉमैंड्स का उपयोग करने के लिए पसंद किया जाता है क्योंकि विम पहले से ही अपने द्वारा जांच करता है और पहले से ही पर्याप्त फुटप्लगिन को स्रोत करने की कोशिश करता है इसलिए पहिया को और अधिक जांच करने और पहिया को फिर से लागू करने का कोई कारण नहीं है।
- संपादित करें -
मान लिया जाये कि आप filetype plugin onअपने में vimrc- जो आप करना चाहिए - विम फ़ाइलों को आप संपादित की फ़ाइल प्रकार का पता लगाने के एक बार सही फ़ाइल प्रकार मिल गया और बफर के लिए सेट किया जाता है की कोशिश करेंगे और,, स्रोत के लिए इन मानक स्थानों में इसी ftplugin का प्रयास करें:
$VIMRUNTIME/ftplugin/html.vim
~/.vim/ftplugin/html.vim
~/.vim/ftplugin/after/html.vim
यह सब स्वचालित रूप से होता है, यदि आपका फ़ाइल नाम Vim द्वारा पहचाना जाता है, तो किसी भी फ़ाइल प्रकार पहचान तर्क को जोड़ने का कोई कारण नहीं है: बस अपनी सेटिंग्स को सही ftplugin में जोड़ें और आप अच्छे हैं।
filetype plugin indent onमें है vimrc।
filetype plugin onसेट किया जाता है, विम के पथ में इसके पथ में फ़ाइलें ftplugin/<filetype>.vimऔर after/ftplugin/<filetype>/vimफ़ाइलें शामिल होती हैं ।
आप अपने में ऑटोकॉमैंड्स के साथ ऐसा कर सकते हैं .vimrc।
उदाहरण के लिए, मेरे पास एक फ़ंक्शन है html_like_modeजो HTML फ़ाइलों को संपादित करने के लिए विभिन्न चीजों को सेट करता है। मेरे पास .vimrc, मेरे पास है:
au BufNewFile,BufRead *.html call s:html_like_mode()
फ़ाइल एक्सटेंशन की कुंजी बंद। यदि आपके पास सक्षम है, तो आप फ़िलाटाइप से भी कुंजी ले सकते हैं:
au FileType perl setlocal equalprg=perltidy
जैसा कि आप देख सकते हैं, आप इसे किसी भी कमांड में कर सकते हैं। तो आप आसानी से setlocal shiftwidth 4अपने * .c फ़ाइलों के लिए कर सकते हैं ।
augroupआपको संबंधित ऑटोकॉमैंड्स को नामित समूहों में समूहित करने की अनुमति देता है। ( ऑटोकॉमैंड ग्रुप्स के बारे में जानने के लिए यहां देखें ।) हम augroupऑटोकॉमैंड्स को ~/.vimrcएक तरह से जोड़ने के लिए एस का उपयोग करते हैं जो हर बार जब हम इसे स्रोत बनाते हैं तो डुप्लिकेट नहीं जोड़ेंगे।
augroup vimrc
autocmd!
augroup END
autocmd vimrc FileType html setlocal shiftwidth=4 tabstop=4