2009-08-21 6 views
6

मुझे विम में तार्किक और दो autocmd घटनाओं की आवश्यकता है। मूल रूप से, जब फ़ाइलटाइप tex है, तो कमांड को InsertLeave पर चलाना पड़ता है। ऐसा लगता है कि यह काम करना चाहिए (एक .vimrc में):विम: autocmd संयोजन?

autocmd FileType tex :autocmd InsertLeave :w 

लेकिन ऐसा नहीं है। नेस्टेड विकल्प या तो मदद करने के लिए प्रतीत नहीं होता है, भले ही मैनुअल इंगित करता है कि यह चाहिए।

इसकी आसान करने के लिए एक तार्किक-ओआर:

autocmd BufEnter,BufLeave ... 

यह बहुत मुश्किल करने के लिए नहीं होना चाहिए एक तार्किक-और।

+0

आपको ज़ीएक्स के समाधान को उत्तर के रूप में लेना चाहिए, क्योंकि यह ईवी के स्थानीय बफर समस्या को हल करता है। – Profpatsch

+0

हो गया, लेकिन मैं इसके लिए अपना शब्द ले रहा हूं। मुझे स्थानीय बफर समस्या याद है, लेकिन मैंने वर्षों में लेटेक्स नहीं लिखा है, और 2 साल पहले emacs पर स्विच किया है। –

उत्तर

8

मैं @Eevee जवाब के लिए एक सुधार है: केवल एक बफर के लिए autocommand काम करने के लिए, आप का उपयोग करना चाहिए `

augroup TexAutoWrite 
    autocmd FileType tex :autocmd! TexAutoWrite InsertLeave <buffer> :update 
augroup END 

, देखें: ज autocmd-buflocal।

+0

यह शानदार है। अब मैं अपने ब्राउज़र पर स्विच करने पर एसिडियोक दस्तावेज़ पुनः प्रस्तुत कर सकता हूं। – Profpatsch

+1

ओच। समस्या: दूसरा ऑटोकॉम्मंड * हर बार * आप एक tex फ़ाइल में स्विच * जोड़ा। थोड़ी देर के बाद विम डालने के बाद विम एक पंक्ति में कई बार सहेजना शुरू कर देता है। – Profpatsch

+1

@Profpatsch सुधार किया गया। – ZyX

4

InsertLeave को अभी भी एक पैरामीटर की आवश्यकता है।

यह मेरे लिए काम करता है:

autocmd FileType tex :autocmd InsertLeave * :w 

ध्यान दें कि यह व्यवहार यदि आप बाद में एक ही बफर में एक गैर tex फ़ाइल को संपादित रहेगा। मुझे यकीन नहीं है कि कुछ भी संपादित करते समय इसे हटाने का एक आसान तरीका है लेकिन एक निश्चित प्रकार की फ़ाइल है।

+0

दरअसल, एक आकर्षण की तरह काम करता है। –

+0

कोलन वास्तव में आवश्यक नहीं है। जैसे 'एयू फाइलटाइप एयू विमलेव * कॉल सिस्टम ("किलॉल गोकोड")' – Meow

4

आप autocmnd के पैटर्न विकल्प का उपयोग कर सकते हैं।

autocmd InsertLeave *.tex w 
+0

यह तब काम नहीं करता है जब फ़ाइल एक्सटेंशन फ़ाइल प्रकार से मेल नहीं खाता है या अस्तित्व में नहीं है। ऐसा तब होता है जब आप बैकअप/अस्थायी फ़ाइलों के विरुद्ध तुलना करने जैसी चीजें कर रहे हैं, या यदि फ़ाइल का स्थान इसके प्रकार को निर्धारित करता है, उदा। सिस्टम विन्यास फाइलें। – Walf

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