在本地初始化中包含全局 .ocamlinit

Include global .ocamlinit in local init

我想在有项目本地 .ocamlinit 时包含我的全局 ~/.ocamlinit 文件,例如。在本地目录中,因为我在 ~/.ocamlinit.

中设置了我的 utop 历史文件名

为此,我尝试了

#use (Filename.concat (Sys.getenv "HOME") ".ocamlinit");;

当然不行,所以我查看了toplevel directives,但它们似乎都采用字符串参数。如何最好地做到这一点?

我想,更一般地说,问题是如何将非常量传递给顶级指令(不确定在评估任何代码之前是否对指令进行了预处理)。

您可以使用 compiler-libs 包提供的编程接口。例如,

Topdirs.dir_use Format.err_formatter (Filename.concat (Sys.getenv "HOME") ".ocamlinit")

应该可以在不需要任何依赖项的情况下工作。