Vam中OCaml评论的不良缩进

时间:2015-04-25 22:04:49

标签: vim ocaml auto-indent

我使用的是ocamldoc风格的评论,但是vim让我讨厌,因为它在不应该的时候缩进评论。

例如,使用以下代码:

(**
 * {[

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

(**
 * {[
     *

所以我每次都需要删除4个空格。

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

当我在ocamldoc评论中打开一个新行时,我怎能做到没有四个额外空格?

感谢。

2 个答案:

答案 0 :(得分:1)

评论中的主要明星在OCaml中并不是惯用的(并且由ocamldoc处理不当),只是放下星星。

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

答案 1 :(得分:1)

我发现通过编辑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*$'

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

此更改的效果是在评论之外[之后也没有缩进,但我不介意这种副作用。

我会在几天前打开这个问题,看看是否有更好的解决方案。