Emacs Live - 找不到命名空间

时间:2012-11-01 22:44:51

标签: emacs clojure

我正在使用Emacs Live,因为它看起来不错,为我节省了大量的配置工作。现在它工作了好几天,但今天有些东西显然已经破产了。具体来说,自动完成功能已经破裂(我相信它可能是ac-nrepl的一个问题)。基本上,我的迷你缓冲区现在只显示“未找到命名空间。”,我不再获得真正的自动完成功能(仅对已存在于文件中的单词完成)。当我运行C-c M-n时,每次自动完成时,我都会得到一个空的* nREPL错误*缓冲区。

编辑:当我使用nrepl-jack-in启动nrepl-server时,只发生 。只需连接到现有的(例如使用lein repl创建)就可以正常工作。

2 个答案:

答案 0 :(得分:8)

Namespace not found的问题是nrepl不知道当前缓冲区的命名空间。 nrepl-set-ns(C-c M-n)的问题是运行in-ns,它不会带来clojure核心依赖项。

在这两种情况下,解决方法是只评估缓冲区的ns s-expr,或者使用nrepl-load-current-buffer加载整个缓冲区。

当然,您可以修改nrepl-set-ns以执行ns或添加另一个fn。

答案 1 :(得分:0)

看起来像向缓冲区添加可能为空的ns声明:

(ns example ...)

并且执行nrepl-set-ns是nrepl的预期用法。它允许使用多个Clojure缓冲区,每个缓冲区都有自己的导入,别名等。

我选择在.clj文件创建/打开时添加一个钩子来自动完成这项工作。但是仍有人负责在修改时刷新ns表单!