我已将CIDER安装到我的裸机Emacs中,当我在cider-mode
时(也在clojure-mode
中)我尝试使用 M-TAB 来做代码完成我得到了
不是nREPL dict对象:%
其中%
是一个任意函数。例如,如果我尝试在此行中为map
执行代码完成:
(ma
我在 Messages 缓冲区中看到以下内容:
完成 - some:不是nREPL dict对象:map
我在我的Emacs中做了一个tabula rasa,所以我的init.el
看起来像这样:
(require 'package)
(add-to-list 'package-archives
'("marmalade" . "http://marmalade-repo.org/packages/") t)
(add-to-list 'package-archives
'("tromey" . "http://tromey.com/elpa/") t)
(add-to-list 'package-archives
'("melpa" . "http://melpa.milkbox.net/packages/") t)
(package-initialize)
(when (not package-archive-contents)
(package-refresh-contents))
(defvar my-packages
'(paredit
clojure-mode
clojure-mode-extra-font-locking
cider))
(dolist (p my-packages)
(when (not (package-installed-p p))
(package-install p)))
我观察到一件有趣的事情。当我执行cider-jack-in
时,我连接到nREPL并且在REPL缓冲区中,我看到以下内容:
警告:CIDER的版本(0.13.0快照)与cider-nrepl的版本(nil)不匹配。事情会破裂!
我做错了什么?我无法让CIDER的代码完成工作。即使使用简单的 M-TAB 选项也无法正常工作。
我使用的是Emacs 24.3.1。
答案 0 :(得分:2)
这正是问题所在:
警告:CIDER的版本(0.13.0快照)与cider-nrepl的版本(nil)不匹配。事情会破裂!
Cider由两部分组成,其中包括emacs包(CIDER)和clojure part cider-nrepl。第二个是使用中间件来实现n(etwork)-repl
由于苹果酒的开发正在快速发展,因此两个版本必须匹配。 (而且你也应该使用最新的版本,你现在正在做的事情:))
您可能希望将其添加到project.clj或者profiles.clj
:plugins [[cider/cider-nrepl "0.13.0-SNAPSHOT"]]
https://cider.readthedocs.io/en/latest/还有很多文档 并在github回购 https://github.com/clojure-emacs/cider