我正在使用Vim编辑我的Haskell源文件,并将'textwidth'选项设置为自动换行超长行。因此,我~/.vimrc看起来像这样:
set tw=78
现在,当我写的一行代码超过78个字符时,最后一个单词会自动移到下一行。这对于在源文件中编写注释非常有用。好处是,在注释中,如果最后一行太长并自动换行,每行开头的注释符号会自动插入到每行开头。但是,这仅适用于C风格的注释,而不适用于Haskell前导破折号。
例如,在JS文件中:
/**
* This is a very long comment which is longer than 78 chars, yeah really
* longer than 78 chars...
会被很好地包装,除此之外还有
// This is a very long comment which is longer than 78 chars, yeah really
// longer than 78 chars...
现在,如果Haskell注释中也有类似的情况,那就太好了,比如:
------------------------------------------------------------------------------
-- | This is a very long module description which is longer than 78 chars,
-- yeah really longer than 78 chars...
有人知道这是否可行?这个行为在哪里指定?:set formatexpr或:set formatoptions能帮助我吗?
谢谢您的帮助!
=<< Johannes
/编辑:顺便说一下,我使用vim 7.3.x
c
标志。Vim用于识别注释的机制在用户手册的第30.6节中描述,并且在“格式化注释”主题下也有更深入的介绍。 - sidyll`set comments=s1:--\ \|,m:--,e:--`
但是这似乎只适用于C风格的注释,因为Vim太“聪明”了,在注释的e
和m
部分之前插入了一个空格。有没有办法配置这个呢? - JHannes