如何用Emacs nREPL选择/切换Leiningen配置文件?

时间:2013-08-18 22:28:28

标签: emacs clojure leiningen nrepl

我在我的leiningen项目文件中设置了:dev配置文件。这为我的repl会话定义了:init和:init-ns设置。如果我在emacs(M-x nrepl-jack-in)中使用光标在我的project.clj中的:dev关键字上启动nrepl,则会启动repl并使用:init和:init-ns设置。如果我将光标放在别处,初始命名空间是不同的(测试ns,而不是用户),并且:init尚未被评估。

我猜它是某种特征,(我更倾向于认为它现在是随机的行为),但是有人可以解释它或指向那些这样做的文档吗?此外,有没有办法在repl启动后更改配置文件?

由于

4 个答案:

答案 0 :(得分:14)

与@ user7610的评论者相反,苹果酒中没有cider-jack-in-with-profile功能。在这方面,苹果酒pull-request #544有点误导。

如果您希望苹果酒加载您自己的special-snowflake个人资料,请在emacs中执行此操作:

  • M-x set-variable cider-lein-parameters例如with-profile +my-special-snowflake repl :headless

或以交互方式设置变量(因此您可以在更改之前查看它的当前值):

  • C-h, v cider-lein-parameters然后点击或按Enter键"自定义"并将其设置为例如with-profile +my-special-snowflake repl :headless并将其应用

cider-jack-in配置文件(运行nrepl和cider)所需的配置文件之外,还会导致您的下一个my-special-snowflake加载base配置文件。

答案 1 :(得分:2)

试试这个:

(defun start-cider-repl-with-profile ()
  (interactive)
  (letrec ((profile (read-string "Enter profile name: "))
           (lein-params (concat "with-profile +" profile " repl :headless")))
    (message "lein-params set to: %s" lein-params)
    (set-variable 'cider-lein-parameters lein-params)
    (cider-jack-in)))

在CIDER 0.16.0(里加)上进行测试

答案 2 :(得分:1)

我只是搜索相同的功能,并在clojure-emacs / nrepl.el&#34中找到了这个未解决的问题;将参数添加到nrepl-jack-in以允许指定配置文件" https://github.com/clojure-emacs/nrepl.el/issues/327

它仍然是开放的

答案 3 :(得分:0)

我在2019-04的计算机(GNU Emacs 26.2(内部版本1,x86_64-apple-darwin18.2.0,NS appkit-1671.20版本10.14.3(内部版本18D109))中尝试使用Jiacai Liu编写函数作者-13)。我得到一个错误是:

eval-region: Wrong number of arguments: (1 . 1), 0

然后,我尝试省略功能为:

(defun start-cider-repl-with-profile ()
  (interactive)
  (letrec ((profile (read-string "Enter profile name: "))
           (lein-params (concat "with-profile +" profile " repl :headless")))
    (message "lein-params set to: %s" lein-params)
    (set-variable 'cider-lein-parameters lein-params)
    (cider-jack-in '())))

现在可以正常工作了。谢谢刘嘉才!