org-babel配合ammonite运行scala疑问

各位道友: 又遇到麻烦来请教啦 参考https://github.com/zwild/ob-ammonite,可以在org-babel里运行ammonite来解释scala脚本。 问题是每次按C-c C-c运行后emacs会处于假死状态,下方进度条显示“executing Amm code block”,并且占据cpu资源。按下C-g可以退出这种状态,并且ammonite repo里显示正常运行结果。

同样版本的emacs里org babel运行python脚本没问题

请问这种情况有啥解法吗?或者如何进行进一步调试?

一个发现,以下操作可以避免假死状态

  1. 执行C-c C-c之前,必须先打开repl, M-x run_ammonite
  2. 在repl里先随意输入字符,回车后ammonite编译报错,忽略
  3. 回到code-block执行C-c C-c
  4. 执行成功,结果返回,再也不假死

还有一点不确定是否有关,我一直用evil模式

关于scala,我看到大家现在用scala-cli 会多些?官方也在维护这个。

应该还是调用predef.sc后出现假死,

repl.prompt() = "scala> "

import $ivy.com.lihaoyi::ammonite-ops:2.4.1

init.el里加了下面两行后,就正常了 (setq ammonite-term-repl-auto-detect-predef-file nil)

(setq ammonite-term-repl-program-args '(“–no-default-predef” “–no-home-predef”))