plantuml 代码块无法执行

hi, 现在在 org 文件里 无法生成图。 错误提示为:

Evaluation of this plantuml code block is disabled.

我是develop 分支的最新代码 已经配置好了 plantuml.jar

我在网上查了一下,说是被禁止在org 文件里执行 其他代码,但是我尝试加一段配置,还是无效,大家有什么办法吗?

  (org-babel-do-load-languages
   'org-babel-load-languages
   '((emacs-lisp . nil)
     (plantuml . t)))
1 个赞

你可能在哪个地方加了 :noeval 头参数:

图片

如果代码块上没有,那你就要检查 subtree properties 以及整个文档的设置里有没有加这个选项

我肯定没加过,有什么地方可以开启吗?

 #+BEGIN_SRC plantuml :results text :file /home/ezhonke/ReauthFromQueue.png
 @startuml
 IncomingHandler -> ConsumerWatcher : start
 ConsumerWatcher -> ConsumerWatcher : watch
 ConsumerWatcher -> ConsumerWatcher : watchFor
 ConsumerWatcher -> ConsumerWatcher : createConsumers
 @enduml
 #+END_SRC
 #+RESULTS:

检查一下这个变量 org-babel-default-header-args:plantuml

图片

确保里面没有 :eval :noeval 这类东西

另外,同一个 buffer 中其它语言的代码块可以执行吗?

删除 org-contrib-plus, 重新安装,也许有用

只有 Plantuml 不行吗,还是其他语言都不行。如果其他语言都不行,就试下上面链接里的配置。

:joy: 先别动用大杀器,先找着问题的根源再说

查出来的结果和你一样的, C 代码块也不行

把你的文件的头部贴出来吧

显式设置 :eval 试试:

删除这个包,重装之后,果然有效,非常感谢! 但是为啥会发生问题啊,我之前重新clone 过

感觉 代码还是不够稳定啊

可能还是 byte-compile 的锅。总之如果 byte-compile 有问题的话,是会有各种灵异事件的,而 org-plus-contrib 包里文件又太多,搞不清楚哪个出的问题,所以干脆全删,强制它重新 compile。

删除 .emacs.d/elpa/org-plus-contrib/*.elc 并重启后,这个问题消失了。参见: https://github.com/syl20bnr/spacemacs/issues/7641

谢谢。这个提示解决了我的一个关于 plantuml 多次执行的问题。