Vim स्टार्टअप पर कमांड कैसे निष्पादित करें


11

मैंने अभी अजगर के लिए एक प्लगइन स्थापित किया है जो विधियों के पेड़ को प्रदर्शित करता है। इसलिए मैं स्टार्टअप पर पेड़ को खोलना चाहूंगा, इसलिए हर बार जब मैं कुछ .pyफ़ाइल खोलता हूं, तो बटन को धक्का देना आवश्यक नहीं है । लेकिन, मैं चाहता हूं कि यह कमांड केवल .pyफाइलों के लिए निष्पादित हो । यहाँ मेरा vimrc टुकड़ा कैसा दिखता है:

nmap <F8> :TagbarToggle<CR>

क्या स्टार्टअप पर इस कमांड को केवल .pyफाइलों के लिए निष्पादित करने का एक तरीका है ?


हाउडी सेंट एंटेरियो। आप यह नोट करना चाह सकते हैं कि आपके स्वीकृत उत्तर में वैकल्पिक उत्तर की तुलना में कई कम बदलाव हैं।
चूजों

जवाबों:


8

अपने में जोड़ें .vimrc:

au BufEnter *.py :TagbarToggle<CR>

कहाँ पे

  • auहै autocmd, आदेश स्वचालित रूप से निष्पादित करें।

  • BufEnter जब आप पहली बार फ़ाइल दर्ज करते हैं।

  • *.py फिलाइट पायथन के लिए है।

  • और बाकी को निष्पादित किया जाने वाला कमांड है

2
यह खट्टा होने पर हर बार एक अतिरिक्त ऑटोकॉमैंड जोड़ देगा .vimrc। इसे रोकने के लिए, लाइन को एक एग्रुप से घिरा होना चाहिए जो कमांड को हटा देता है। देखते हैं :help augroup-delete
रिच

: टेस्टग्रुप टेस्टग्रुप: ऑटोकैमड! : au BufEnter * .py: TagbarToggle <CR> augroup END क्या यह ठीक है?
कपिल

1
मुझे ठीक लगता है!
रिच

11

मेरी राय में, ऐसा करने का सबसे साफ तरीका यह है कि आप अपनी .vim/vimfilesडायरेक्टरी में एक फाइल में कमांड जोड़ें :

~/.vim/after/ftplugin/python.vim

या विंडोज के लिए:

$HOME\vimfiles\after\ftplugin\python.vim

इस तकनीक को :help ftplugin-overrule(सूची आइटम 3) में प्रलेखित किया गया है , हालांकि संदर्भ (बदलती सेटिंग्स) थोड़ा अलग है।

यह कापिल द्वारा वर्णित ऑटोकॉमैंड तकनीक पर निम्नलिखित लाभ प्रदान करता है

  1. कम कोड । आप बस उस Vimscript को लिखें जिसे आप निष्पादित करना चाहते हैं। आपको एक ऑटोकॉमैंड को कोड करने और इसे augroupऔर autocommand!स्पष्ट कमांड के साथ घेरने की आवश्यकता नहीं है ।

  2. कम ओवरहेड । विम पहले से ही फ़ाइल प्रकार का पता लगा रहा है और फ़ाइल के अस्तित्व की जांच कर रहा after/ftplugin/filetypeहै: एक अतिरिक्त ऑटोकॉमैंड क्यों जोड़ें जो एक ही उद्देश्य करता है?

  3. सफाई करने वाला.vimrc । मुझे लगता है कि फ़ाइल-प्रकार-विशिष्ट कार्यक्षमता को मेरे से अलग करना बेहतर है .vimrc। (कुछ इससे असहमत हैं, हालांकि: नुकसान देखें, नीचे।)

इसके कुछ छोटे नुकसान भी हैं:

  1. यह केवल तभी काम करता है जब आप विम के फिलाटाइप डिटेक्शन का उपयोग कर रहे हों। ( :help filetype)

    हालाँकि, यह आम तौर पर पहली सेटिंग्स में से एक है जिसे लोग अपने .vimrc में सक्षम करते हैं, और मैं दांव लगाऊंगा कि लगभग सभी विम उपयोगकर्ता पहले से ही इसे चालू कर चुके हैं।

  2. कुछ लोग अपनी .vimrcफ़ाइल में अपने सभी कॉन्फ़िगरेशन रखना पसंद करते हैं ।


1
+1 ftplugin/<filetype>.vim, चिंताओं के बेहतर पृथक्करण के लिए :)
LEI
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.