自从几天前我在我的 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 页面上谈论此特定行为。所以看起来它与我的环境有某种关系。
任何有关如何解决此问题的帮助将不胜感激。
桑蒂。