如何为有文化的Haskell编程设置vim缩进?

时间:2013-09-02 08:38:22

标签: haskell vim indentation auto-indent literate-programming

当我打开常规* .hs文件的autoindent时,按 Enter 之后新行将按预期缩进。但是,这不适用于代码行以>开头的literate Haskell * .lhs文件(AKA“bird-tracks”)。光标始终位于第一列。

如何设置vim,以便当我在* .lhs文件中的一段代码中(并且让其说开启autoindent时),按 Enter 在新行创建一个鸟类轨道并适当缩进?

更新:举个例子,假设有

> myfn x | x <= 0     = 0
>        | x == 1     = 1▌

其中表示光标的位置(我希望您看到unicode字符没有问题。)如果我按 Enter ,我最终会

> myfn x | x <= 0     = 0
>        | x == 1     = 1
▌

而我想要

> myfn x | x <= 0     = 0
>        | x == 1     = 1
>        ▌

1 个答案:

答案 0 :(得分:7)

这应该很容易实现

:set formatoptions+=ro

:se fo+=ro简称。

'formatoptions'中有ro,Vim会尝试在注释中的新行上插入注释“leader”,包括缩进(即文字Haskell中的非注释) )。

要自动进行此设置,请在vimrc中设置自动命令。

autocmd FileType lhaskell setlocal formatoptions+=ro

提示:当您不需要时,使用CTRL-U删除自动插入的领导者。