當一個Haskell文件,我用C-c C-l
運行其目的是將當前文件加載到GHCI解釋程序的命令inferior-haskell-load-file
但Emacs的只是掛起,直到我點擊C-g
。任何人都知道我可以如何讓這個工作?Emacs的掛在哈斯克爾模式與劣勢,哈斯克爾加載文件調用
GNU Emacs的23.3.1(x86_64的-PC-Linux的GNU,GTK +版2.24.5)的2011-08-14上五香粉,Debian是
改性使用的Haskell模式版本V2.7.0
當一個Haskell文件,我用C-c C-l
運行其目的是將當前文件加載到GHCI解釋程序的命令inferior-haskell-load-file
但Emacs的只是掛起,直到我點擊C-g
。任何人都知道我可以如何讓這個工作?Emacs的掛在哈斯克爾模式與劣勢,哈斯克爾加載文件調用
GNU Emacs的23.3.1(x86_64的-PC-Linux的GNU,GTK +版2.24.5)的2011-08-14上五香粉,Debian是
改性使用的Haskell模式版本V2.7.0
inferior-haskell-mode根據預期的ghci提示進行一些解析。因此,如果您更改.ghci
文件中的提示,那麼它無法檢測到它。
欲瞭解更多信息,請參見這裏haskell-ghci.el設置comint-prompt-regexp
值,以確定哪些提示爲。
;; GHCi prompt should be of the form `ModuleName> '.
(setq comint-prompt-regexp
"^\\*?[[:upper:]][\\._[:alnum:]]*\\(\\*?[[:upper:]][\\._[:alnum:]]*\\)*> ")
如果你想保留設置在.ghci
文件,則有可能自定義此設置。
我有一個類似的問題,由於GHCi在啓動時報告了某種錯誤,導致Emacs haskell模式無限期地等待GHCi提示(GHCi未顯示標準提示(Prelude>
),而只顯示>
)。您可以嘗試從外部運行GHCi並查看是否報告了任何錯誤。
看起來不像報告任何錯誤。什麼樣的錯誤,你具體指的是什麼? –
老問題,但正如我今天剛剛碰到這個,我想分享如何實際自定義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)
您可以添加更多的點來"\\|^.> "
承認一個較長的提示,但我想繼續保持固定長度的簡單性。
當我試圖與emacs一起使用堆棧時,我收到了相同的錯誤消息。對於我來說,加入這行來我的.emacs/init.el解決了這個問題:
(setq haskell-program-name "stack ghci")
你有一個自定義的'.ghci'文件?這可能會干擾,特別是如果您更改提示...否則,如果使用「emacs -Q」啓動並顯式加載默認值,您是否遇到問題? – ivanm
@ivanm就是這樣!請添加它作爲答案。 –