Pet*_*lák 5 vim haskell indentation literate-programming auto-indent
当我打开autoindent
常规的*.hs文件时,按下后输入新行按预期缩进.但是,这不适用于代码行以(AKA"bird-tracks")开头的文字Haskell*.lhs文件>
.光标始终位于第一列.
我如何设置vim,以便当我在*.lhs文件中的一段代码中(并且让它们autoindent
开启)时,按Enter键会在新行创建一个鸟类轨道并适当缩进?
更新:举个例子,让我们说有
> myfn x | x <= 0 = 0
> | x == 1 = 1?
Run Code Online (Sandbox Code Playgroud)
where ?
表示光标的位置(我希望你看到unicode字符没有问题.)如果按Enter键,我最终会
> myfn x | x <= 0 = 0
> | x == 1 = 1
?
Run Code Online (Sandbox Code Playgroud)
而我想要
> myfn x | x <= 0 = 0
> | x == 1 = 1
> ?
Run Code Online (Sandbox Code Playgroud)
这应该很容易实现
:set formatoptions+=ro
Run Code Online (Sandbox Code Playgroud)
或:se fo+=ro
简称.
随着r
和o
在'formatoptions'
,Vim尝试在注释内的新行上插入注释"leader",包括缩进(即,在文字Haskell中的非注释).
要自动进行此设置,请在vimrc中设置自动命令.
autocmd FileType lhaskell setlocal formatoptions+=ro
Run Code Online (Sandbox Code Playgroud)
提示:用于CTRL-U
在不需要时删除自动插入的引导程序.