Wrong type argument: char-or-string-p, nil 源码如下: #+BEGIN_SRC plantuml :file /opt1/yuzhenrong/plantuml_config/example.png @startuml Alice → Bob: Hello @enduml #+END_SRC
我试了下,你这里的箭头是有问题的应该是 - > 两个字符合并成箭头,你的箭头是一个符号。
#+BEGIN_SRC plantuml :file ~/Downloads/example.png
@startuml
Alice -> Bob: Hello
@enduml
#+END_SRC
我复制了你的代码到emacs上执行,报了错的。不知道我的环境是有啥问题 Wrong type argument: char-or-string-p, nil 你生成文件的路径需要手动创建一个example.png吗,还是这些都是他自己做的?
:file
关键字后面的路径是执行后生成文件的路径,名称就是 example.png。
你好楼主,你可以试试先 M-x
toggle-debug-on-error
, 然后再执行,这样就会打印出详细错误信息。这个是 Emacs 里面基础的 debug 技巧,非常实用。
执行之后你可以吧错误信息贴出来看看。
你可以把代码放在 三个反引号里面,这样会好看一些, 比如
```
代码放在这里然后发送
```
Debugger entered--Lisp error: (wrong-type-argument char-or-string-p nil)
org-babel-execute:plantuml("@startuml\nAlice -> Bob: Hello\n@enduml\11\11\11\11" ((:colname-names) (:rowname-names) (:result-params "replace" "file") (:result-type . value) (:results . "replace file") (:exports . "results") (:session . "none") (:cache . "no") (:noweb . "no") (:hlines . "no") (:tangle . "no") (:file . "/opt1/yuzhenrong/plantuml_config/example.png")))
org-babel-execute-src-block(nil ("plantuml" "@startuml\nAlice -> Bob: Hello\n@enduml\11\11\11\11" ((:colname-names) (:rowname-names) (:result-params "file" "replace") (:result-type . value) (:results . "file replace") (:exports . "results") (:file . "/opt1/yuzhenrong/plantuml_config/example.png") (:tangle . "no") (:hlines . "no") (:noweb . "no") (:cache . "no") (:session . "none")) "" nil 3730 "(ref:%s)"))
org-ctrl-c-ctrl-c(nil)
funcall-interactively(org-ctrl-c-ctrl-c nil)
call-interactively(org-ctrl-c-ctrl-c nil nil)
command-execute(org-ctrl-c-ctrl-c)
我是ssh远程到ubuntu服务器上面编辑org文件的,服务器上面jar包,java环境,plantuml包以及graphviz包都是有的,init.el也是配置了的。
(unless (package-installed-p 'plantuml-mode)
(package-install 'plantuml-mode))
;; 设置 PlantUML 的 JAR 路径
(setq plantuml-jar-path (expand-file-name "/opt1/yuzhenrong/plantuml_config/plantuml.jar"))
;; 使用 PlantUML 编写语言
(org-babel-do-load-languages
'org-babel-load-languages
'((plantuml . t)))
;; 设置 PlantUML 命令选项
(setq org-plantuml-jar-path plantuml-jar-path)
(setq plantuml-default-exec-mode 'jar)
可能是你最近升级 Emacs 之后 elc 文件有点问题。
建议你可以卸载重装 Emacs,并且重新安装所有插件。
1 个赞