我的需求是, 我会用 org-babel 用 dot, mermaid 之类的来画一些图,生成的是 pdf, 用另一个 pdf 软件看 (这样可以看得比较清楚). 我希望能一边编辑 babel block 中的 source code (用 org-edit-special 在另一个 buffer), 一边看 pdf 效果. 现在每次我想更新图, 我要先 org-edit-src-exit, 再 C-c C-c
再重新 org-edit-special. 有没有优雅一点的方法可以直接在 org src buffer 中执行 org babel? 一个不优雅的做法就是直接写一个命令先后调用, org-edic-src-exit, org-babel-execute-src-block, org-edit-special. 就是这样:
(defun my/org-babel-in-buffer ()
(interactive)
(call-interactively #'org-edit-src-exit)
(call-interactively #'org-babel-execute-src-block)
(call-interactively #'org-edit-special)
)
可以是可以, 不优雅的地方在于, 每次执行完了都需要重新设置 buffer, 比如打开 undo-tree-mode, font-lock-mode 之类的.