我是org-mode的新手。我刚刚使用el-get安装了最新版本,但我遇到了一个非常烦人的问题。 命令org-sbe似乎不起作用。 以下是我从doc中获取的最小示例:
#+begin_src emacs-lisp :results silent
(defun fibbd (n) (if (< n 2) 1 (+ (fibbd (- n 1)) (fibbd (- n 2)))))
#+end_src
#+name: fibbd
#+begin_src emacs-lisp :var n=2 :results silent
(fibbd n)
#+end_src
| original | fibbd |
|----------+--------|
| 0 | #ERROR |
| 1 | #ERROR |
| 2 | #ERROR |
| 3 | #ERROR |
| 4 | #ERROR |
| 5 | #ERROR |
| 6 | #ERROR |
| 7 | #ERROR |
| 8 | #ERROR |
| 9 | #ERROR |
#+TBLFM: $2='(org-sbe "fibbd" (n $1))
正如你所看到的,我一直得到#ERROR
难道我做错了什么?
非常感谢
答案 0 :(得分:3)
要使其发挥作用,还需要进行一些更改。为方便起见,我在文件变量中禁用了评估确认...
-*- mode: org; org-confirm-babel-evaluate: nil; -*-
#+name: fibbd
#+begin_src emacs-lisp :var n=0
(defun fibbd (n) (if (< n 2) 1 (+ (fibbd (- n 1)) (fibbd (- n 2)))))
(fibbd n)
#+end_src
| original | fibbd |
|----------+-------|
| 0 | 1 |
| 1 | 1 |
| 2 | 2 |
| 3 | 3 |
| 4 | 5 |
| 5 | 8 |
| 6 | 13 |
| 7 | 21 |
| 8 | 34 |
| 9 | 55 |
#+TBLFM: $2='(org-sbe fibbd (n $1))