如何缩进现有 OCaml 代码
我有大约 30.000 行缩进严重的 OCaml 代码(包括 mly 和 mll 文件),并且想要缩进它们。我尝试在谷歌上搜索“ocaml indent”的变体,我能得到的最接近的结果是使用 Omlet.vim 并一次缩进一行代码(通过插入模式下的 Cf)。有没有办法对所有 30000 行进行缩进?
I have ~30.000 lines of badly indented OCaml code (including mly and mll files) and would like to indent them. I tried googling for variations of 'ocaml indent' the closest I can get is to use Omlet.vim and indent the code one line at a time (via C-f in insert mode). Is there a way to do the indentation for all the 30000 lines?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
我使用 Emacs 作为编辑器并安装了以下软件包:
http:// /caml.inria.fr/pub/docs/u3-ocaml/emacs/index.html
要缩进现有代码,您需要突出显示它,然后使用组合键
CM-\
您可以很容易地为每个文件编写脚本,而且我发现缩进非常好。
I use Emacs as my editor with this package installed:
http://caml.inria.fr/pub/docs/u3-ocaml/emacs/index.html
To indent existing code you need to highlight it and then use the key combination
C-M-\
You can script this per file pretty easily and I find the indentation to be pretty good.
当我想在 vim 中重新缩进整个文件时,我使用以下按键序列:
g g V G =
为您解释一下,g g 将光标移动到文件的开头。 V 进入可视模式。 G 选择到文件末尾。 = 缩进所选行。
这应该比逐行应用缩进的方法快得多,但仍将使用相同的规则(警告:使用 Omlet,缩进整个文件可能需要一段时间)。
When I want to re-indent a whole file in vim, I use the following key sequence:
g g V G =
Breaking this down for you, g g moves the cursor to the beginning of the file. V enters visual mode. G selects to the end of the file. = indents the selected lines.
This should be much faster than your method of applying indentation line by line, but yet will use the same rules (warning: using Omlet, indenting a whole file may take a while).
现在,可以使用 ocp-indent (opam install ocp-indent) 并像这样调用它:
Now, one can use ocp-indent (opam install ocp-indent) and invoke it like this :
为此,请使用 ocp-indent 工具。下面是一个
Makefile
规则示例,它将自动缩进ml
文件。Use
ocp-indent
tool for this. Here is an exampleMakefile
rule, that will automatically indent youml
files.