ऑटोकम को कैसे निष्क्रिय करें या विम में फिर से जोड़ें?


25

यह देखते हुए कि मेरे पास कमांड का एक समूह है जैसे:

augroup MyGroup
  autocmd CursorMoved * silent call MyCommandOne()
augroup END

मैं MyGroup में सभी ऑटोकॉमैंड्स को एक समय के लिए अक्षम करना चाहता हूं और बाद में इसे फिर से सक्षम कर सकता हूं।

क्या मैं समूह के साथ कुछ भी कर सकता हूं? विशेष रूप से, क्या एक बार में पूरे समूह को निष्क्रिय करने का एक तरीका है? यदि नहीं, तो मैं व्यक्तिगत आदेशों को अक्षम करने के लिए क्या कर सकता हूं?

मदद को देखते हुए, मैं केवल कुछ विकल्प देखता हूं:

  • augroup!पूरे समूह को हटा देगा: मुझे नहीं लगता कि यह सही है क्योंकि मैं इसे फिर से सक्षम करना चाहूंगा। (लेकिन शायद फिर से समूह को फिर से परिभाषित करने का एक तरीका है?)
  • :noautocmdकेवल एक आदेश के एक बार के आह्वान के लिए कॉलबैक को अक्षम कर देगा। (और यह सभी ऑटोकैड्स को अक्षम करता है , निर्दिष्ट नहीं)
  • eventignore ईवेंट बाइंडिंग को संबोधित करता है, कमांड को नहीं: ऐसा लगता है कि यह किसी दिए गए ईवेंट के लिए सभी बाध्य कमांड को निष्क्रिय करता है, न कि केवल एक कमांड या एक समूह जिसे मैं निर्दिष्ट कर सकता हूं।

यह कैसे किया जाता है?

जवाबों:


20

से :help autocmd:

If you want to skip autocommands for one command, use the :noautocmd command
modifier or the 'eventignore' option.

से :help :noautocmd:

To disable autocommands for just one command use the ":noautocmd" command
modifier.  This will set 'eventignore' to "all" for the duration of the
following command.  Example:

    :noautocmd w fname.gz

This will write the file without triggering the autocommands defined by the
gzip plugin.

तो यह प्रतीत होता :noautocmdहै कि आप क्या देख रहे हैं।

आप किस संदर्भ में अक्षम करना चाहते हैं augroup?


आपके उत्तर के लिए धन्यवाद, लेकिन मैंने इसे पहले ही डॉक्स में पढ़ा। मैंने अपना प्रश्न स्पष्ट कर दिया (उम्मीद है) दिखाओ कि मैं क्या देख रहा हूँ।
एंड्रयू विट

8

से यहाँ , ऐसा लगता है कि यह यह प्राप्त होता है:

:augroup Foo
:autocmd BufEnter * :echo "hello"
:augroup END

...

:autocmd! Foo BufEnter *

1

कोई भी जिसके पास मूल पोस्टर की आवश्यकता नहीं है, को पुनर्स्थापित करने में सक्षम होने की आवश्यकता है augroup, :autocmd! <augroup name>यह केवल autocmdएक में सभी को हटाने की आज्ञा है augroup, जैसे:

:autocmd! MyGroup
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.