2

自从几天前我在我的 emacs 上将 cider 更新为 CIDER 0.6.0alpha(包:20140318.1539)后,我一直无法运行 cider-jack-in。

如果我尝试 Mx cider-jack-in,我会在消息缓冲区中收到以下错误

 Wrong type argument: stringp, nil

如果我从 lisp 缓冲区运行命令,我会得到以下回溯

Debugger entered--Lisp error: (wrong-type-argument stringp nil)
  find-file-name-handler(nil file-remote-p)
  file-remote-p(nil)
  start-file-process-shell-command("nrepl-server" "*nrepl-server*<2>" "lein repl :headless")
  cider-jack-in()
  eval((cider-jack-in) nil)
  eval-last-sexp-1(nil)
  eval-last-sexp(nil)
  ad-Orig-call-interactively(eval-last-sexp nil nil)
  call-interactively(eval-last-sexp nil nil)

查看调试器中的源代码会发现 start-file-process-shell-command 的代码以 default-directory 作为参数调用了 file-remote-p 几次。

现在,我不确定这是否有用,因为我在这里已经超出了我的深度。但是如果我尝试评估源缓冲区上的默认目录,它会返回一个非零值(“/usr/share/emacs/24.3/lisp/”)。

我尝试清除我的 .emacs.d 目录并重新安装 cider 和 clojure 模式,但我仍然遇到同样的问题,而且我还没有看到任何其他线程在 cider github 页面上谈论此特定行为。所以看起来它与我的环境有某种关系。

任何有关如何解决此问题的帮助将不胜感激。

桑蒂。

4

1 回答 1

6

您受到了通过添加cider-jack-inovertramp功能 ( commit ) 引入的回归的影响。我刚刚解决了这里的问题。

将来,您最好在项目的问题跟踪器上报告问题。你很幸运我也在stackoverflow上。:-)

于 2014-03-22T10:36:22.377 回答