我有(除了the chapter of clojure for the brave and true中推荐的配置之外的一些附加配置,例如company-mode我的emacs 24.5。

不幸的是,我遇到了一个问题,尝试通过alice in wonderland clojure katas进行操作,REPL无法在正确的 namespace 中启动。我可以使用C-c M-n切换到 namespace ,REPL会显示该 namespace ,但是此后的任何评估都给我一个错误“ namespace 不存在”。

我尝试更新cider-nrepl(仅通过在~/.lein/profiles.clj中进行更改即可,但是随后它给了我一个错误,提示它与Cider和Cider-nREPL版本号不兼容。我尝试使用一个简单的package-install cinder进行更新,但它也没有用,但是给了我带有错误数目的参数的the function cider-find-var is not known和函数调用警告。

如何保持包装最新?我的命名空间问题甚至与此有关吗?

最佳答案

您的 namespace 问题听起来像是一个不同的问题。如果文件中有 namespace ,并且在苹果酒启动时不会自动加载该文件,则会发生这种情况。

您可以将repl切换到该名称,尽管在按Ctrl-cCtrl-k加载文件之前,不会加载任何内容。如果您在core.clj(或项目使用的任何名称作为启动 namespace )中添加了一个需要该 namespace 的require,那么当您启动苹果酒时,该 namespace 将被加载。

到您的苹果酒nrepl版本匹配问题。当发布新版本的苹果酒并且您在emacs中执行某些操作以更新软件包时,可能会发生这种情况。那么您的苹果酒版本会领先于nrepl版本。通过将〜/ .lein / profiles.clj中的cider-nrepl版本始终设置为启动cider时在屏幕顶部列出的版本,我获得了最愉快的体验。

更新:不再需要苹果酒nrepl配置!

世界已经改善,您不再需要在〜/ .lein / profiles.clj中设置任何内容。您应该从该文件中删除所有cider和nrepl引用,然后安装最新版本的cider.el,所有这些东西将开始起作用。特别是cider.el现在可以在您自动运行cider-jack-in时将对lein的适当依赖项广告化。因此,如果您具有最新版本,并通过苹果酒启动lein,则您无需再进行任何特殊操作。

10-07 22:00