8

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

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

4

2 回答 2

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 来做 ans或添加另一个 fn。

于 2012-11-11T02:35:12.773 回答
0

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

(ns example ...)

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

我选择在.clj文件创建/打开中添加一个钩子来自动化这项工作。不过,仍然有一个负责刷新ns修改表单!

于 2012-12-25T18:32:39.320 回答