使用tuareg在Emacs中启动自定义OCaml顶级的便捷方法

使用tuareg在Emacs中启动自定义OCaml顶级的便捷方法,emacs,ocaml,tuareg,Emacs,Ocaml,Tuareg,如果我使用tuareg run caml功能在Emacs/tuareg中启动自定义顶级,我需要给出顶级的路径以及查找CMI文件所需的各种-I选项。这种键入很乏味,有没有更方便的方法来启动自定义toplevel?一种方法是在项目目录中添加一个.ocamlinit,该目录使用#目录来添加toplevel所需的任何路径。您还可以使用它来安装打印机、为常用模块添加较短的名称、运行测试代码等 请注意,您可能希望特定于项目的.ocamlinit执行~/.ocamlinit,因为像opam这样的东西往往会在其

如果我使用
tuareg run caml
功能在Emacs/tuareg中启动自定义顶级,我需要给出顶级的路径以及查找CMI文件所需的各种
-I
选项。这种键入很乏味,有没有更方便的方法来启动自定义toplevel?

一种方法是在项目目录中添加一个
.ocamlinit
,该目录使用
#目录
来添加toplevel所需的任何路径。您还可以使用它来安装打印机、为常用模块添加较短的名称、运行测试代码等

请注意,您可能希望特定于项目的
.ocamlinit
执行
~/.ocamlinit
,因为像opam这样的东西往往会在其中放入位和块。它可能看起来像这样:

#use "/home/foo/.ocamlinit"

#directory "_build"

open Printf
module V = VeryLongModuleName
请注意,
#use
需要硬编码路径。不幸的是,这会干扰文件的分发

我还通过使用emacs命令启动一个顶层,搜索当前目录中名为
*.top
的文件来执行,如果找不到文件,则返回到
ocaml
,从而进一步实现了自动化。由于
ocamlbuild
提供了一种相当简单的构建这些文件的方法,因此避免了将项目加载到可用顶层的繁琐工作