vim 中的 OCaml 注释缩进错误

Bad Indentation of OCaml Comments in vim

我使用 ocamldoc 风格的注释,但是 vim 让我很烦,因为它在不应该缩进的时候缩进了注释。

例如,使用以下代码:

(**
 * {[

如果我在上面代码的第二行打开一个新行,vim 将缩进代码,因此它看起来像:

(**
 * {[
     *

所以我每次都需要去掉4个空格

我尝试使用ocp-indent,但结果是一样的。

当我在 ocamldoc 注释中打开一个新行时,我该怎么做才能没有四个额外的空格?

谢谢。

评论中的主要星星在 OCaml 中根本不是惯用的(并且被 ocamldoc 处理得很糟糕),只是放弃星星。

您观察到的行为可能是意料之中的。大多数缩进引擎都尝试在注释中缩进代码,{[ 是解释缩进的代码块的开始。

我发现我可以通过编辑 ocaml 缩进文件来获得所需的行为。

我更新了第 208 行:

if lline =~ '\(:\|=\|->\|<-\|(\|\[\|{\|{<\|\[|\|\[<\|\<\(begin\|do\|else\|fun\|function\|functor\|if\|initializer\|object\|parser\|private\|sig\|struct\|then\|try\)\|\<object\s*(.*)\)\s*$'

至:

 if lline =~ '\(:\|=\|->\|<-\|(\|{\|{<\|\[|\|\[<\|\<\(begin\|do\|else\|fun\|function\|functor\|if\|initializer\|object\|parser\|private\|sig\|struct\|then\|try\)\|\<object\s*(.*)\)\s*$'

(我从这个正则表达式中删除了 \[ 模式。)

此更改的效果是在注释之外的 [ 之后不缩进,但我不介意这种副作用。

过几天再开这个问题看看有没有更好的解决办法