2011-11-01 19 views
12

एक हास्केल फ़ाइल में, मैं C-c C-l का उपयोग करते हैं आदेश inferior-haskell-load-file जो GHCi दुभाषिया में वर्तमान फ़ाइल को लोड करने का इरादा है चलाने के लिए, लेकिन Emacs सिर्फ मैं जब तक लटकी हुई है C-g हिट करें। कोई भी जानता है कि मैं इसे कैसे काम कर सकता हूं?Emacs अवर-Haskell-लोड फ़ाइल कॉल के साथ Haskell मोड में लटकी हुई है

जीएनयू Emacs 23.3.1 (x86_64-पीसी-linux-gnu, जीटीके + संस्करण 2.24.5) 2011-08-14 allspice पर की, डेबियन

द्वारा संशोधित Haskell-मोड संस्करण v2.7.0

का उपयोग करना
+1

क्या आपके पास एक अनुकूलित '.ghci' फ़ाइल है? इससे हस्तक्षेप हो सकता है, खासकर अगर आप प्रॉम्प्ट बदलते हैं ... अन्यथा, अगर आपको "emacs -Q" के साथ लॉन्च करने में कोई समस्या है और फिर स्पष्ट रूप से केवल डिफ़ॉल्ट लोड करें? – ivanm

+0

@ivanm यह था! इसे उत्तर के रूप में जोड़ें। –

उत्तर

11

अवरक्त-हैकेल-मोड अपेक्षित ghci प्रॉम्प्ट के आधार पर कुछ पार्सिंग करता है। इस प्रकार, यदि आप .ghci फ़ाइल में प्रॉम्प्ट बदलते हैं, तो यह इसका पता नहीं लगा सकता है।

अधिक जानकारी के लिए, जहां haskell-ghci.elcomint-prompt-regexp मूल्य सेट निर्धारित करने के लिए क्या एक शीघ्र है।

;; GHCi prompt should be of the form `ModuleName> '. 
(setq comint-prompt-regexp 
     "^\\*?[[:upper:]][\\._[:alnum:]]*\\(\\*?[[:upper:]][\\._[:alnum:]]*\\)*> ") 

आप अपने .ghci फ़ाइल में सेटिंग को बनाए रखना चाहते हैं, तो यह संभव इस सेटिंग्स को अनुकूलित करने हो सकता है।

+0

ग्रेट टिप। बहुत बहुत धन्यवाद। आपने मुझे सिरदर्द का एक टन बचा लिया है। –

+0

हम में से कई में यह है .ghci: ': set prompt" λ> "'। पैटर्न में डिफ़ॉल्ट रूप से λ शामिल करना अच्छा लगेगा। – gawi

+0

मैं "λ>" स्वीकार करने के लिए regexp को संशोधित करने की कोशिश कर रहा हूं। यह कुछ regexp non-ascii मुद्दा होना चाहिए ... – gawi

0

मुझे जीएचसीआई द्वारा स्टार्टअप पर किसी प्रकार की त्रुटि की रिपोर्ट करने के कारण एक ही समस्या थी, जिससे इमाक्स हैकेल मोड जीएचसीआई प्रॉम्प्ट के लिए अनिश्चित काल तक इंतजार कर रहा था (जीएचसीआई ने मानक प्रॉम्प्ट (Prelude>) नहीं दिखाया, बल्कि सिर्फ > दिखाया)। आप बाहरी रूप से जीएचसीआई चलाने की कोशिश कर सकते हैं और देख सकते हैं कि यह किसी भी त्रुटि की रिपोर्ट करता है या नहीं।

+0

ऐसा लगता है कि यह किसी भी त्रुटि की रिपोर्टिंग की तरह नहीं है। किस तरह की त्रुटियां और आप विशेष रूप से कहां से मतलब रखते हैं? –

3

पुराना सवाल, लेकिन जैसा कि मैंने अभी इस में भाग लिया है, मैं वास्तव में comint-prompt-regexp को अनुकूलित करने के तरीके को साझा करना चाहता था क्योंकि मुझे इसे समझना था।

यह अनुकूलन λ> संकेतों, या वास्तव में > से पहले किसी एकल वर्ण को पहचान लेगा), लेकिन यह मौजूदा रेगेक्स को तोड़ नहीं देता है। अपने .emacs में:

(load-library "inf-haskell") 

(defun my-inf-haskell-hook() 
    (setq comint-prompt-regexp 
     (concat comint-prompt-regexp "\\|^.> "))) 

(add-to-list 'inferior-haskell-mode-hook 'my-inf-haskell-hook) 

करते हैं तो बड़े शीघ्र पहचान करने के लिए "\\|^.> " के लिए और अधिक डॉट्स जोड़ सकते हैं, लेकिन मैं इसे सादगी के लिए निर्धारित लंबाई रखने के लिए करना चाहता था।

0

मुझे एक ही त्रुटि संदेश मिला जब मैंने emacs के साथ स्टैक का उपयोग करने का प्रयास किया। मेरे लिए, इस लाइन को मेरे .emacs/init.el में जोड़ने से समस्या हल हो गई:

(setq haskell-program-name "stack ghci") 
संबंधित मुद्दे