elisp in org src 输出多行结果

多行命令只能输出一个结果

#+begin_src emacs-lisp :tangle yes 
(message "hi")
(message "hi")
#+end_src

#+RESULTS:
: hi

修改results之后没有输出

#+begin_src emacs-lisp :tangle yes :results output
(message "hi")
(message "hi")
#+end_src

#+RESULTS:

怎么改才好?

1 个赞

统一返回,字数补丁。

统一返回?

想要这样的结果:

hi
hi

我意思是统一用最后一个语句做输出

(let ((a "A")
      (b "B"))
  (message "%s\n%s" a b))
1 个赞

恩, 用来测试, 不能这样喽.

#+BEGIN_SRC python :results output
print('testing')
print('testing2')
#+END_SRC

#+RESULTS:
: testing
: testing2

你应该是搞错了什么,message在noninteractive的环境下会把输出打到stderr而非stdout。所以原来输出到stdout的是message的返回值而不是message的side effect

#+BEGIN_SRC emacs-lisp :results output
(princ "Hello")
(terpri)
(princ "OK")
#+END_SRC

#+RESULTS:
: Hello
: OK
3 个赞