如何缩进现有的OCaml代码

时间:2009-12-17 22:35:19

标签: ocaml indentation

我有~30,000行严重缩进的OCaml代码(包括mly和mll文件)并想缩进它们。我尝试使用谷歌搜索“ocaml indent”的变体,我能得到的最接近的是使用Omlet.vim并一次将代码缩进一行(在插入模式下通过C-f)。有没有办法对所有30000行进行缩进?

4 个答案:

答案 0 :(得分:8)

我使用Emacs作为我的编辑器安装了这个包:

http://caml.inria.fr/pub/docs/u3-ocaml/emacs/index.html

要缩进现有代码,您需要突出显示它,然后使用组合键C-M-\

您可以非常轻松地为每个文件编写脚本,并且我发现缩进非常好。

答案 1 :(得分:3)

当我想在vim中重新缩进整个文件时,我使用以下键序列:

g g V G =

为你打破这个, g g 将光标移动到文件的开头。 V 进入视觉模式。 G 选择到文件的末尾。 = 缩进选定的行。

这应该比逐行应用缩进的方法快得多,但是会使用相同的规则(警告:使用Omlet,缩进整个文件可能需要一段时间)。

答案 2 :(得分:1)

现在,可以使用ocp-indent(opam install ocp-indent)并像这样调用它:

ocp-indent bad-indented-ocaml.ml > well-indented-file.ml

答案 3 :(得分:0)

使用ocp-indent工具。以下是一个示例Makefile规则,它会自动缩进ml个文件。

.PHONY: auto-ocp-indent
auto-ocp-indent: *.ml
    for mlfile in $^; do ocp-indent -i $$mlfile; done