如何阻止Org Babel自动为Java代码块添加样板代码?
禁用Org Mode Java代码块自动包裹样板代码的方法
- Org Mode中控制Java代码块自动包装的核心变量是
org-babel-java-wrapper-function,默认逻辑会在代码不含类声明时自动包裹Main类和main方法。 - 在Doom Emacs的配置文件(如
~/.doom.d/config.el)中添加以下代码,彻底禁用自动包裹:(setq org-babel-java-wrapper-function (lambda (body) body)) - 若需要保留对普通代码片段的包裹,仅针对枚举(enum)等特殊类型禁用,可修改包装函数做针对性判断:
(setq org-babel-java-wrapper-function (lambda (body) (if (or (string-match-p "^\\s-*public\\s+enum" body) (string-match-p "^\\s-*enum" body) (string-match-p "^\\s-*public\\s+class" body)) body (format "public class Main { public static void main(String[] args) { %s } }" body)))) - 保存配置后,重启Emacs或执行
M-x eval-buffer使配置生效,之后编写public enum这类代码块就不会被错误包裹了。
内容的提问来源于stack exchange,提问作者yogesh900
相关产品推荐
相关产品推荐

