खोज…


टिप्पणियों

चारों ओर 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