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*$'
(我从这个正则表达式中删除了 \[
模式。)
此更改的效果是在注释之外的 [
之后不缩进,但我不介意这种副作用。
过几天再开这个问题看看有没有更好的解决办法
我使用 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*$'
(我从这个正则表达式中删除了 \[
模式。)
此更改的效果是在注释之外的 [
之后不缩进,但我不介意这种副作用。
过几天再开这个问题看看有没有更好的解决办法