vim
Autocommands
खोज…
टिप्पणियों
चारों ओर autocmd
कमांड
autocmd
एक एडिटिव कमांड है, और आप शायद इस व्यवहार को डिफ़ॉल्ट रूप से नहीं चाहते हैं।
उदाहरण के लिए, यदि आप इसे संपादित करते समय अपने .vimrc
पुन: स्रोत करते हैं, तो विम धीमा हो सकता है।
यहाँ सबूत है:
:autocmd BufWritePost * if &diff | diffupdate | endif " update diff after save
:autocmd BufWritePost * if &diff | diffupdate | endif " update diff after save
यदि आप अब टाइप करते हैं :autocmd BufWritePost *
, तो आप आउटपुट में दोनों लाइनें देखेंगे, न कि केवल एक। दोनों में फाँसी मिलती है।
इस व्यवहार से बचने के लिए, अपने सभी autocmd
को इस प्रकार से autocmd
:
if has ('autocmd') " Remain compatible with vi which doesn't have autocmd
augroup MyDiffUpdate " A unique name for the group. DO NOT use the same name twice!
autocmd! " Clears the old autocommands for this group name
autocmd BufWritePost * if &diff | diffupdate | endif " Update diff after save
" ... etc ...
augroup END
endif
सहेजने के बाद स्वचालित रूप से स्रोत .vimrc
इसे अपने $MYVIMRC
जोड़ें:
" Source vim configuration file whenever it is saved
if has ('autocmd') " Remain compatible with earlier versions
augroup Reload_Vimrc " Group name. Always use a unique name!
autocmd! " Clear any preexisting autocommands from this group
autocmd! BufWritePost $MYVIMRC source % | echom "Reloaded " . $MYVIMRC | redraw
autocmd! BufWritePost $MYGVIMRC if has('gui_running') | so % | echom "Reloaded " . $MYGVIMRC | endif | redraw
augroup END
endif " has autocmd
विशेषताएं:
-
echom
उपयोगकर्ता को बताता है कि क्या हुआ है (और लॉग भी करता है:messages
)। -
$MYVIMRC
और$MYGVIMRC
कॉन्फ़िगरेशन फ़ाइलों के लिए प्लेटफ़ॉर्म-विशिष्ट नामों को संभालते हैं, - और केवल वास्तविक कॉन्फ़िगरेशन फ़ाइलों से मेल खाते हैं (अन्य निर्देशिकाओं में प्रतियों की अनदेखी, या एक
fugitive://
अंतर) -
has()
असंगत संस्करणों का उपयोग करने पर एक त्रुटि को रोक देगा, जैसे किvim-tiny
। -
autocmd!
यदि यह फ़ाइल फिर से चालू की जाती है, तो कई समान ऑटोकॉमंड के बिल्डअप से बचा जाता है। (यह नामित समूह के सभी आदेशों को साफ करता है, इसलिए समूह का नाम महत्वपूर्ण है।)
यदि किसी फ़ाइल को किसी अन्य विंडो में सहेजा जाता है, तो विमिफ़ के विचारों को ताज़ा करें
:autocmd BufWritePost * if &diff | diffupdate | endif
Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow