我正在使用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可以帮助我吗?
提前感谢您的帮助!
=<<约翰内斯
/ edit:顺便说一下我使用的是vim 7.3.x
答案 0 :(得分:3)
您应该检查formatoptions
设置;对我来说,它的值为croql
。 c
表示评论会在下一行继续。见:help 'formatoptions'
:set formatoptions=croql
答案 1 :(得分:2)
我不是vim
用户(而haskell-mode
emacs
通常只是“做正确的事”,优雅地适应某种缩进风格),但以下似乎为我的快速测试工作:
:set comments=:--\ ,sr:{-,m:\ ,ex:-}
这不具体处理-- |
,但实际上我从来没有在Haskell中看到像这样的缩进:
-- | Bla Bla
-- continues right under the Bla
将这样的评论缩进是更常见的事情:
-- | Usually a one-line short description.
--
-- Continued like this, with a longer description.
或者,这个变种:
-- | Bla bla slightly longer than one line description
-- bla bla.
--
-- Bla bla additional details.
如果您想要一个长时间运行的文本描述您的声明,您可以将其作为多行注释开始:
{-|
The definition of 'myfunc', Act I, Chapter 1. Bla bla bla bla
bla bla...
-}