【问题标题】:Emacs hangs in haskell-mode with inferior-haskell-load-file callEmacs 在 haskell 模式下挂起,并调用了 lower-haskell-load-file
【发布时间】:2011-12-19 04:38:36
【问题描述】:

在 Haskell 文件中,我使用 C-c C-l 运行命令 inferior-haskell-load-file,该命令旨在将当前文件加载到 GHCI 解释器中,但 Emacs 只是挂起,直到我点击 C-g。有谁知道我怎样才能让它工作?

GNU Emacs 23.3.1 (x86_64-pc-linux-gnu, GTK+ Version 2.24.5) of 2011-08-14 on allspice,由 Debian 修改

使用haskell-mode版本v2.7.0

【问题讨论】:

  • 您有自定义的.ghci 文件吗?这可能会干扰,特别是如果您更改提示...否则,如果您使用“emacs -Q”启动然后显式加载默认值,您会遇到问题吗?
  • @ivanm 就是这样!请添加它作为答案。

标签: haskell emacs


【解决方案1】:

当我尝试将堆栈与 emacs 一起使用时,我收到了相同的错误消息。对我来说,将此行添加到我的 .emacs/init.el 解决了问题:

(setq haskell-program-name "stack ghci")

【讨论】:

    【解决方案2】:

    老问题,但是今天我刚刚遇到这个问题,我想分享如何实际自定义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)
    

    您可以在"\\|^.> " 中添加更多点以识别更长的提示,但为了简单起见,我想将其保持固定长度。

    【讨论】:

      【解决方案3】:

      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 中都有这个::set prompt "λ> "。最好在模式中默认包含 λ。
      • 我很不幸尝试修改正则表达式以接受“λ>”。这一定是一些正则表达式非 ascii 问题...
      • @gawi:如果你使用 Christopher Done 的东西,它目前在 github 中,那么它会使用 λ> 作为提示符。
      【解决方案4】:

      我遇到了类似的问题,GHCi 在启动时报告某种错误,导致 Emacs haskell 模式无限期地等待 GHCi 提示(GHCi 没有显示标准提示 (Prelude>),而只是显示>)。您可以尝试在外部运行 GHCi,看看它是否报告任何错误。

      【讨论】:

      • 看起来它没有报告任何错误。什么样的错误,你具体指的是哪里?
      猜你喜欢
      • 2013-08-11
      • 2012-07-27
      • 1970-01-01
      • 2011-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多