ocaml的REPL可以支持自动完成等吗?

时间:2011-11-02 03:00:37

标签: ocaml

除了使用rlwrap之外,还有其他方法可以使ocaml支持自动完成等吗?

此致!

2 个答案:

答案 0 :(得分:11)

最近,在OCaml邮件列表上公布了名为 utop 的系统。它是OCaml顶级产品的替代产品,具有许多高级功能。它似乎托管在OcamlCore.org:

http://forge.ocamlcore.org/projects/utop/

我没试过,但听起来不错。

我自己使用rlwrap。

答案 1 :(得分:7)

您可以在Emacs缓冲区内使用ocaml toplevel,这样可以使您保持稳定rlwrap - 就像编辑功能一样,以及Emacs配置中的任何内容,包括潜在的非ocaml特定完成模式。

除了Jeffrey已经引用的JérémieDimino的utop之外,还有其他相对于OCaml顶级的项目。他们并非都提供完成,但您可能仍然对它们感兴趣:

  • 郑丽的EnhtopREADME)提供了浏览当前顶级环境的指令
  • Peng Zang的Enhtop+,一个关于Enhtop的增量补丁,它带有tuareg-plus模式,提供额外的tuareg功能,包括ocaml-aware完成,也可以从Emacs顶级缓冲区获得

(相关,但不是面向顶层的,是Jun Furuse的Ocamlspotter,它允许在Emacs中获取OCaml文件的这个名称定义信息的精确位置)

所有这些项目都是OCaml来源的补丁。这意味着要安装它们,您必须下载OCaml编译器的源代码,修补它们,编译并将结果用作OCaml安装(可以选择保留现有的OCaml安装,修补和编译相同版本的编译器分开,并有选择地使用/替换有趣的可执行文件)。这也意味着补丁开发者需要遵循OCaml编译器升级的维护负担,并且您可能会受限于要使用哪个版本的OCaml。简而言之,部署起来并不容易。