在没有clojure项目的情况下,“苹果酒杰克”运行clojure而不是leiningen

时间:2018-09-26 13:23:55

标签: emacs clojure leiningen cider

我试图在没有Clojure项目的情况下从emacs执行“苹果酒劫持”,而我只是想运行Clojure REPL。但是我发现苹果酒正在尝试运行/usr/local/bin/clojure而不是/usr/local/bin/lein,而后者未将我的profiles.clj用于莱宁根设置。当我尝试Clojure项目时,通常可以与lein一起使用。

我想知道是否有任何原因导致即使我没有在终端机上运行Clo {lein repl}(我希望苹果酒也可以这样做)也没有问题的情况,而我却希望这样做可以运行Leiningen通过苹果酒而没有Clojure项目。

我对此表示感谢。

2 个答案:

答案 0 :(得分:2)

在CIDER 0.18(当前稳定版本)上,您需要将cider-jack-in-default设置为符号,而不是字符串(例如'lein)。

(define-obsolete-variable-alias 'cider-default-repl-command 'cider-jack-in-default)
(defcustom cider-jack-in-default (if (executable-find "clojure") 'clojure-cli 'lein)
  "The default tool to use when doing `cider-jack-in' outside a project.
This value will only be consulted when no identifying file types, i.e.
project.clj for leiningen or build.boot for boot, could be found.

As the Clojure CLI is bundled with Clojure itself, it's the default.
In the absence of the Clojure CLI (e.g. on Windows), we fallback
to Leiningen."
  :type '(choice (const 'lein)
                 (const 'boot)
                 (const 'clojure-cli)
                 (const 'shadow-cljs)
                 (const 'gradle))
  :group 'cider
  :safe #'symbolp
  :package-version '(cider . "0.9.0"))

旧变量确实采用了字符串,这是事实。没有看到完整的堆栈跟踪信息,我无法确定到底是什么问题。通常,最好在CIDER的问题跟踪器中提出此类问题。

如果有人想知道为什么CIDER现在使用clojure-cli而不是lein来进行非项目的REPL-我们的思想是Clojure CLI是我们可以假定每个Clojure用户都拥有的唯一工具,因此它提供了更安全的默认设置。

答案 1 :(得分:1)

尝试:(setq cider-jack-in-default 'lein)