使用带org-mode的babel,我正在尝试获取以下C代码的输出:
#+begin_src C :includes <stdio.h> :results output verbatim :exports both
puts("[1] 2 3 3");
#+end_src
不幸的是,在此块上点击 C-c C-c 仅产生:
#+RESULTS:
: [1]
似乎尽管我使用了:results verbatim
,但输出会以某种方式解释,[1]
之后的所有内容都会被忽略。 我想知道如何配置org-babel,以便上述结果包含完整输出,即我希望:
#+RESULTS:
: [1] 2 3 3
请注意,如果输出不是以[.*]
开头,则显示为我期望的结果:
#+begin_src C :includes <stdio.h> :results outputs verbatim :exports both
puts("foo");
puts("[1] 2 3 3");
#+end_src
#+RESULTS:
: foo
: [1] 2 3 3
我使用的是Org-mode 8.2版(8.2-6-gd745cd-elpa)。
答案 0 :(得分:1)
必须在源代码中添加一个字母才能使其正常工作:
#+begin_src C :results output
puts("[1] 2 3 3");
#+end_src
#+RESULTS:
: [1] 2 3 3
这是补丁:
Modified lisp/ob-C.el
diff --git a/lisp/ob-C.el b/lisp/ob-C.el
index e9eec93..c35b3d0 100644
--- a/lisp/ob-C.el
+++ b/lisp/ob-C.el
@@ -106,7 +106,7 @@ or `org-babel-execute:C++'."
((lambda (results)
(org-babel-reassemble-table
(org-babel-result-cond (cdr (assoc :result-params params))
- (org-babel-read results)
+ (org-babel-read results t)
(let ((tmp-file (org-babel-temp-file "c-")))
(with-temp-file tmp-file (insert results))
(org-babel-import-elisp-from-file tmp-file)))
我也在邮件列表中发送了补丁。