2012-06-29 18 views
5

जब मैं चलाता हूं तो कुछ भी-सी-एटैग- अपेक्षाकृत बड़ी TAGS फ़ाइल के साथ आदेश, मुझे हमेशा त्रुटि संदेश मिलता है जैसे rexxp matcher Emacs पर मिनी बफर के अंदर।मैं Emacs के लिए उपलब्ध स्टैक आकार को कैसे बदल सकता हूं?

File TAGS is large (9MB), really open? (y or n) 
Loading tag file...70% 
and: Stack overflow in regexp matcher 

ऐसा लगता है कि Emacs पर्याप्त ढेर आकार पूरे टैग डेटा को पढ़ने के लिए नहीं है: *Messages* बफर में, इस प्रकार वहाँ लॉग संदेश प्रकट होता है। Emacs के लिए ढेर आकार बढ़ाने के लिए कोई रास्ता है?

मैं Emacs के 2 संस्करण के साथ इस की कोशिश की:

  • मैक ओएस एक्स 24.1 (यूनिवर्सल बाइनरी)
  • Emacs मैक ओएस एक्स 23.4 (यूनिवर्सल बाइनरी)

लेकिन के लिए Emacs, दोनों ने एक ही त्रुटि संदेश दिखाया।

अग्रिम धन्यवाद!

+0

आप यह देखना चाहते हैं कि 'कुछ भी' को ''हेलम'] (https://github.com/emacs-helm/helm#readme) के साथ बदलना समस्या को हल करता है, क्योंकि बाद में सक्रिय रूप से विकसित किया जा रहा है। – phils

+0

धन्यवाद! मैंने 'हेलम' की कोशिश की, लेकिन अभी भी वही समस्या मौजूद है। – mahata

+0

आप उस मामले में, उन्हें एक बग रिपोर्ट सबमिट कर सकते हैं; शायद वे इसे अगले रिलीज के लिए ठीक कर सकते हैं। – phils

उत्तर

1

आप के लिए संभवत: आसान समाधान:

अभी तक बेहतर: [\ 0- \ 377 [: nonascii:]] * "ढेर अतिप्रवाह regexp मिलान में" से बचा जाता है विशाल ग्रंथों के लिए, उदाहरण के लिए,> 34k।

... और/या ...

मेरे टैग टेबल कोड मैं हूँ के साथ काम करने पर निर्भर करता है, विभिन्न स्थानों में कर रहे हैं। मुझे एक पर्यावरणीय चर $ DEVELOP निर्देशिका में इंगित करना आसान है, जिसमें मैं काम कर रहा हूं, जिसमें के लिए TAGS है और vi के लिए टैग हैं।

+0

धन्यवाद! ये 2 लिंक उपयोगी हैं! – mahata

0

मैं पुष्टि की है कि अगर स्ट्रिंग मैचों की समारोह के लिए 2 तर्क बहुत बड़ा है, समारोह तर्क को संभालने के लिए विफल रहता है।

$ git diff 
diff --git a/lisp/anything/anything-config.el b/lisp/anything/anything-config.el 
index 23f00e5..cee5e13 100644 
--- a/lisp/anything/anything-config.el 
+++ b/lisp/anything/anything-config.el 
@@ -7001,7 +7001,7 @@ If not found in CURRENT-DIR search in upper directory." 
         (anything-aif (string-match "\177" i) 
          (substring i 0 it) 
          i)) 
-   do (cond ((and elm (string-match "^\\(.+\\),[0-9]+" elm)) 
+   do (cond ((and elm (< (length elm) 2000) (string-match "^\\(.+\\),[0-9]+" elm)) 
         (setq fname (match-string 1 elm))) 
        (elm (setq cand (concat fname ": " elm))) 
        (t (setq cand nil))) 

मुझे लगता है कि यह त्वरित और गंदा हैक का एक प्रकार है, लेकिन यह अब ठीक काम कर रहा है: इस प्रकार मैं समारोह के लिए कोई प्रतिबंध गयी।

+0

मैंने हेलम के लिए एक [मुद्दा] (https://github.com/emacs-helm/helm/issues/77) जोड़ा है।कृपया इसे स्विच करें और पीआर जमा करें। –

+0

समस्या जोड़ने के लिए धन्यवाद! – mahata