Org-mode 导出 html 时会 eval Ruby code block 的问题

有的文档会很长,code block 比较多,导出就很费时间。 设置 code block 的 :exportscode 也不能阻止它 eval, 设置 org-export-babel-evaluatenil 也不能阻止它 eval。也不知道它这个 eval 是为了啥,是检查语法?还是什么?

不知有没有遇到同样问题的?

设置为:eval no能?

试了一下,加 :eval no 也没用

好神奇,能共享下你那个org文件么?

我错了,我后来验证了一下,代码并没有被 eval ,但是每个 ruby source block 都会调用 rvm.el 切换 ruby 版本,是这个问题导致了导出很慢

这个问题我通过 debug-on-entry rvm-activate-corresponding-ruby 找到了

原来是 org-export 需要调用 src block 对应的 major mode 对代码进行着色,而 Spacemacs 给 ruby-mode 加了个 rvm-activate-corresponding-ruby hook,因为我用 enh-ruby-mode 不用 ruby-mode,所以我干脆把 rvm-activate-corresponding-rubyruby-mode-hook 中去掉了:

(remove-hook 'ruby-mode-hook 'rvm-activate-corresponding-ruby)

1 个赞