2011-07-25 14 views
68

मेरे पास एक प्लगइन (FindFile.vim) है जिसे :FindFileCache . चलाने की आवश्यकता है जब भी मैं त्वरित खुलने के लिए फ़ाइल कैश एकत्र करने के लिए vim शुरू करता हूं .. मुझे हर बार जब मैं vim शुरू करता हूं इसे चलाने के लिए मुझे इसे चलाने की ज़रूरत है।विम - वीम शुरू करते समय तत्काल आदेश कैसे चलाएं?

मैं एक बार एक बार लिखने वाला आदेश कैसे लिख सकता हूं, हर बार जब विम शुरू होता है?

उत्तर

108

अपनी कॉन्फ़िगरेशन सामग्री को रखने के लिए सबसे अच्छी जगह आपके में है। Vimrc फ़ाइल। हालांकि, यह बहुत जल्दी sourced है, जाँच :h startup:

At startup, Vim checks environment variables and files and sets values 
accordingly. Vim proceeds in this order: 

1. Set the 'shell' and 'term' option    *SHELL* *COMSPEC* *TERM* 
2. Process the arguments 
3. Execute Ex commands, from environment variables and/or files *vimrc* *exrc* 
4. Load the plugin scripts.         *load-plugins* 
5. Set 'shellpipe' and 'shellredir' 
6. Set 'updatecount' to zero, if "-n" command argument used 
7. Set binary options 
8. Perform GUI initializations 
9. Read the viminfo file 
10. Read the quickfix file 
11. Open all windows 
12. Execute startup commands 

आप देख सकते हैं, अपने .vimrc प्लगइन्स से पहले लोड किया जाएगा। यदि आप इसमें :FindFileCache . डालते हैं तो एक त्रुटि उत्पन्न होगी, क्योंकि वह आदेश अभी तक मौजूद नहीं है। (चरण 4 में प्लगइन लोड होने के बाद यह अस्तित्व में होगा)

इसे हल करने के लिए, सीधे आदेश को निष्पादित करने के बजाय, ऑटो-कमांड बनाएं। जब कोई ईवेंट होता है तो ऑटो कमांड कुछ कमांड निष्पादित करता है। इस मामले में, VimEnter घटना (:h VimEnter से) उचित दिखता है:

autocmd VimEnter * FindFileCache . 
+1

+1, यह स्वीकार्य उत्तर होना चाहिए, यह एक कमांड के लिए एक अलग फ़ाइल बनाने से बहुत साफ है। – stackunderflow

+0

मैंने उबंटू के तहत पूर्णस्क्रीन मोड में vim खोलने के लिए इसका उपयोग किया: https://github.com/emmett9001/dotfiles/blob/115831ec75f19b60b30ddd521cd6e806467db18a/vimrc#L342 –

+0

जोड़ना चाहते हैं कि मेरे पास E172 के साथ यह ब्रेक था क्योंकि मेरे पास एक स्थान था । – Caroline

13

~/.vim/after/plugin/whatever_name_you_like.vim नाम की एक फ़ाइल बनाएँ और

FindFileCache . 

जिस क्रम में स्क्रिप्ट पढ़ सकते हैं और vim निर्देशिका में क्रियान्वित कर रहे हैं :help 'runtimepath'

1

अपने .vimrc में FindFileCache रखो में वर्णन किया गया के साथ भरें।

ऑटोलोड आदेश अलग हैं और आपके परिदृश्य के लिए काम नहीं करेंगे।

+0

यह इंगित करने के लिए धन्यवाद कि वास्तव में यह 'प्लगइन' 'ऑटोलोड' नहीं था। – Benoit

53

वहाँ भी -c झंडा है:

            *VimEnter* 
VimEnter     After doing all the startup stuff, including 
          loading .vimrc files, executing the "-c cmd" 
          arguments, creating all windows and loading 
          the buffers in them. 

फिर, बस में अपने .vimrc इस लाइन जगह विम का मैं इसे अपने tmuxp कॉन्फ़िगरेशन में वर्टिकल स्प्लिट के साथ शुरू करने के लिए करता हूं:

vim -c "vnew" 
+3

धन्यवाद, यही वह है जिसे मैं ढूंढ रहा था। कभी-कभी, मुझे केवल एक अस्थायी स्टार्टअप कमांड चलाने की आवश्यकता होती है जैसे आपने दिखाया है, और इसे मेरे vimrc फ़ाइल – verboze

+0

में स्टोर करने की आवश्यकता नहीं है, यह फ़ाइल नहीं खोल सकता: 'vim -c': colo default 'test। txt' –

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