Org-Babel Clojure Cider NRepl坏了吗?

时间:2017-04-07 16:48:03

标签: emacs clojure cider org-babel

我按照说明here编写了以下组织模式文件:

#+BEGIN_SRC emacs-lisp
  (princ (concat (format "Emacs version:\n%s\n" (emacs-version))
                 (format "\norg version: %s\n" (org-version))))
#+END_SRC

#+RESULTS:
: Emacs version:
: GNU Emacs 25.1.1 (x86_64-apple-darwin13.4.0, NS appkit-1265.21 Version 10.9.5 (Build 13F1911))
:  of 2016-09-17
: 
: org version: 9.0.5

#+BEGIN_SRC clojure :results value
  (* 6 7)
#+END_SRC

#+RESULTS:

* COMMENT org babel settings
Local variables:
org-confirm-babel-evaluate: nil
End:

正如您所看到的,emacs-lisp块的评估工作并生成 预期产出。顺便说一句,它还报告我正在使用的东西的版本。但是,在评估时,clojure源块将离开

Code block returned no value.

我在代码块中尝试了许多不同的Clojure表达式,例如println s等。 NREPL窗口中没有显示任何内容,组织模式中的结果始终相同:迷你缓冲区中的上述消息。

在emacs迷你缓冲区中

。以下是我采取的具体步骤:

  1. $ lein new clojure-example
  2. $ cd clojure-example
  3. $ emacs clojure.example.org
  4. 上面文件中的键盘输入
  5. 运行emacs命令cider-jack-in
  6. 生成一个带有以下版本信息的repl窗口:

    ;; Connected to nREPL server - nrepl://localhost:52695
    ;; CIDER 0.15.0snapshot (package: 20170403.402), nREPL 0.2.12
    ;; Clojure 1.8.0, Java 1.8.0_121  
    

    1. 将emacs游标放在每个块中,并键入绑定的C-c C-c org-babel-execute-src-block
    2. 在此之前,我在emacs初始化文件中插入了以下代码:

      (require 'org)
      (require 'ob-clojure)
      (org-babel-do-load-languages
       'org-babel-load-languages
       '( (clojure     . t)
          (emacs-lisp  . t)
          ))
      (setq org-babel-clojure-backend 'cider)
      (require 'cider)
      

      根据引用的说明。

      我会感激任何帮助。

1 个答案:

答案 0 :(得分:2)

是的,在当前的稳定版本(9.0.5)中,组织模式的clojure后端被破坏并且不起作用。我提交了一个已经应用的补丁,我希望将在下一个版本中。

请参阅https://emacs.stackexchange.com/questions/30857/clojure-code-evaluation-in-org-mode-produces-no-output/31169#31169