“if”的缩进在 Emacs 下的 Ocaml 中
我正在使用 Emacs 编写 Ocaml 代码,目前 if
的缩进设置如下:
if cond1 then e1 else
if cond2 then e2 else
if cond3 then e3 else
e4
我想实现与 Caml 编程指南:
if cond1 then e1 else
if cond2 then e2 else
if cond3 then e3 else
e4
谁能告诉我哪个参数与之相关?谢谢
编辑1:这是我的.emacs
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
您现在可以使用 ocp-indent ,它将(几乎总是)遵守 Caml 编程指南。唯一的区别是它会缩进最后一个表达式,以避免混淆范围错误:
You can now use ocp-indent which will (almost always) respect the Caml programming guidelines. The only difference is that it will indent the last expression, to avoid confusing scoping errors:
似乎有些不对劲。您是否使用 OCaml 发行版中的 caml 模式?因为我这样做了,并且它根据编程指南进行缩进,而无需设置任何参数。这就是我的
.emacs
中的内容(该模式安装在~/.emacs.d/caml-mode
中):如果您使用 tuareg-mode,我无能为力你。但请注意,与普遍的看法相反,发行版中的 caml 模式非常好,并且仍然由 OCaml 的作者维护。
Something seems to be wrong. Are you using the caml-mode from the OCaml distribution ? Because I do and it indents according to the programming guidelines without setting any parameter. That's what I have in my
.emacs
(the mode is installed in~/.emacs.d/caml-mode
):If you are using tuareg-mode I cannot help you. Note however that, contrary to popular belief, the caml-mode from the distribution is perfectly fine and is still maintained by OCaml's authors.
您可以将变量 tuareg-if-then-else-indent 设置为 0,这将缩进您的示例,因为
我不知道如果您没有嵌套 if,这是否会导致其他不良缩进尽管。您还可以
Mxcustomize-group RET tuareg RET
查看所有缩进(和其他)选项。You can set the variable
tuareg-if-then-else-indent
to 0 which will then indent your example asI don't know if that causes other undesirable indentation in case you don't have nested if's though. You can also
M-x customize-group RET tuareg RET
to see all the indentation (and other) options.您对以下内容不满意吗?
Are you not satisfied with the following?