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