我想让vim
尊重rstudio
-like 部分,并通过foldexpr
为这些文本块启用折叠。
这些部分非常简单,对应于带有一组单词和 ---
符号的文本块,直到80个字符,如下所示:
有关这些部分如何运作的信息,可以使用here。
如何在vim中构建foldexpr
,以便识别格式的一部分:
# Word word ... ------------------------
正则表达式匹配部分的格式可以是:
\#[[:blank:]]([[:word:]]|[[:blank:]]){1,}\-{1,}
答案 0 :(得分:2)
这似乎可以解决问题:
set foldmethod=expr
set foldexpr=RFoldexpr(v:lnum)
function! RFoldexpr(lnum)
if getline(a:lnum) =~ '^#\s\(\w\+\s\+\)\+-\+$'
" Start a new level-one fold
return '>1'
else
" Use the same foldlevel as the previous line
return '='
endif
endfunction
将它放在文件~/.vim/ftplugin/r.vim
中应该在加载R文件时自动评估它。如果您想了解更多关于它的工作原理以及其他什么特性和#34;您可以添加,尝试阅读:help fold-expr
。