सिंटैक्स के साथ समय के साथ विम धीमा हो जाता है


11

क्या ऐसा कुछ है जो मैं syntax onविम का उपयोग करते समय रख सकता हूं ?

जैसे ही मैं कुछ भी खोलता हूं कुछ समय बाद संपादित करना लगभग असंभव हो जाता है। हर कीपर देरी का कारण बनता है। अगर मैं वाक्यविन्यास हाइलाइटिंग को बंद कर देता हूं या फिर से हटा देता हूं - यह फिर से ठीक है।

मैंने synmaxcol१२० पर सेट किया है । नमूना माणिक फ़ाइल केवल ५ ९ लाइनें लंबी है और .० अक्षरों से अधिक नहीं है।

मैं उपयोग कर रहा हूँ vim-rubyऔर vim-rails

समस्या यह है कि समय के साथ देरी होती जा रही है। जब मैं फ़ाइल को स्क्रैच से खोलता हूं तो यह ठीक है। थोड़ी देर बाद यह धीमा और धीमा हो जाता है।


1
क्या आपने इसे दोहराने की कोशिश की है vim -Nu NONE -c 'syntax on'? क्या आपने इस पोस्ट
अक्षय

क्या फिलामेंट? कोई भी?
रोमेनिल

1
माणिक। वास्तव में यह संपादन योग्य है -u NONEइसलिए इसे कुछ प्लगइन होना चाहिए। अधिकांश प्रश्नों के उत्तर का अनुमान लगाएं 'प्लगइन्स को तब तक अक्षम करें जब तक आप अपराधी को ढूंढ न लें' :(
firedev

लेकिन समस्या यह है - समय के साथ देरी जमती जा रही है। जब मैं फ़ाइल को स्क्रैच से खोलता हूं तो यह ठीक है। थोड़ी देर बाद यह धीमा और धीमा हो जाता है।
firedev

जवाबों:


14

हाल के वीआईएम संस्करणों :syntimeमें वाक्य रचना के धीमेपन के समस्या निवारण के लिए एक कमांड है कि प्रत्येक वाक्यविन्यास समूह को मिलान करने में कितना समय लगता है। यह बहुत मददगार है और जल्दी से आप अपराधी को ढूंढ सकते हैं; केवल नकारात्मक पक्ष यह है कि आपको प्रोफाइल को सक्षम करने के साथ विम का निर्माण (आमतौर पर "बड़ी") की आवश्यकता है। :help :syntimeयह कैसे काम करने के लिए अच्छे निर्देश प्रदान करता है।

वैकल्पिक रूप से, आप अलग-अलग वाक्यविन्यास स्क्रिप्ट को ( ~/.vim/syntax/और $VIMRUNTIME/syntax/वर्तमान के अनुसार 'filetype') हटाने की कोशिश कर सकते हैं , और फिर स्क्रिप्ट के अंदर वाक्य रचना परिभाषा के कुछ हिस्सों को हटाकर आगे ड्रिल कर सकते हैं।


हम्म दिलचस्प, इस तरह से लगता है कि कुछ संबंधित टैग है। सबसे अधिक समय लेने वाली शीर्ष पंक्ति में मेरी अन्य परियोजनाओं के तरीके हैं। TOTAL COUNT MATCH SLOWEST AVERAGE NAME PATTERN 0.129674 247 182 0.002365 0.000525 rubyMethodNameTag \C\<\%(roi\|paginate\|admin_index_attributes\|facilities\|manager\|net_price?\ ....- यह स्पष्ट रूप से अन्य फ़ोल्डर से है। टैग अक्षम करें?
firedev

क्या आप एक प्लगइन का उपयोग करते हैं जो टैग को हाइलाइट करता है, जैसे कि विम-ईजीटैग्स ? यह वास्तव में मंदी का कारण हो सकता है।
इंगो करकट

हां, इसे निष्क्रिय कर दिया, न कि संख्याओं को फिर से समझ लिया गया। धन्यवाद।
फरिदेव

हम्म अब यह फिर से अभिनय कर रहा है, इस बार इसका: 0.121880 2078 54 0.002260 0.000059 rubySymbol []})\"':]\@<!\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*[!?]\=:[[:space:],]\@= - मैं इसके बारे में कुछ भी कर सकता हूं?
9

2
यह नया regexp इंजन हो सकता है; कोशिश :set regexpengine=1(रूबी फ़ाइल खोलने से पहले एक नई विम उदाहरण में सबसे अच्छा)।
इंगो करकट

5

विम के सिंटैक्स हाइलाइट में एक और विशिष्ट अड़चन तह है। संपादन बहुत धीमा हो सकता है अगर एक तह में कई सिंटैक्स आइटम होते हैं (जिसका मूल अर्थ है कि यह कई पंक्तियों से अधिक हो जाता है), क्योंकि विम हर सम्मिलित चरित्र के लिए सभी सिंटैक्स को ताज़ा करेगा।

यदि यह वही है जो आप अनुभव कर रहे हैं, तो मैं आपको FastFold प्लगइन के उपयोग का सुझाव देता हूं । यह प्लगइन वाक्यविन्यास सिलवटों की पहचान करता है और उन्हें मैनुअल सिलवटों के साथ बदल देता है, जिससे विम का सिंटैक्स बहुत तेजी से उजागर होता है।


1

यहाँ मैं अंत में क्या किया है:

  • हटा दिया xolox/vim-easytags
  • हटा दिया xolox/vim-misc
  • बदला हुआ kien/ctrlp d11wtq/ctrlp_bdeleteऔर tacahiroy/ctrlp-funkyसाथ junegunn/fzf
  • सेट regexpengine=1

अभी विम मक्खन की तरह चिकना है लेकिन मेरे पास अब टैग नहीं हैं। आह ...


1
विम में टैग समर्थन अंतर्निहित है। आपको किसी भी तृतीय-पक्ष प्लगइन्स की आवश्यकता नहीं है (पाठ्यक्रम की टैग फ़ाइल उत्पन्न करने के लिए ctags के अलावा)। टिम पोप द्वारा गीट लेख के साथ सरल सीटीज देखें । मैं इसका उपयोग करता हूं और यह अद्भुत काम करता है। :help tag-commandsएक टैग पर कूदने के लिए भी देखें । मैं विम के साथ काम करते समय ctags को बहुत आवश्यक मानता हूं। यह नेविगेशन को सुपर सरल बनाता है, और आप इसके साथ स्वत: पूर्ण भी हो सकते हैं :help i_Ctrl-x_Ctrl-]!
अक्षय

यहां कुछ भी जोड़ने की देखभाल vi.stackexchange.com/questions/2630/how-to-set-up-tags-properly ?
फेयरवेद
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.