【发布时间】:2020-02-14 18:32:19
【问题描述】:
当我在 vim 中编码时,我使用 set foldmethod=syntax 折叠我的代码。
它看起来像这样:
如何将{ 上方的行添加到折叠中?所以它看起来像这样:
所以想法是它(总是)将折叠上方的线放入折叠中。 我怎样才能做到这一点?
【问题讨论】:
当我在 vim 中编码时,我使用 set foldmethod=syntax 折叠我的代码。
它看起来像这样:
如何将{ 上方的行添加到折叠中?所以它看起来像这样:
所以想法是它(总是)将折叠上方的线放入折叠中。 我怎样才能做到这一点?
【问题讨论】:
这需要一个自定义的fold expression (h fold-expr) 独立来自:
foldtext
foldignore { 和 } 无论缩进多少在你的 vimrc 中:
" Callback: Fold level <- next line indent
function! FoldMethod(lnum)
let l:indent = max([indent(a:lnum+1), indent(a:lnum)])
return l:indent / &shiftwidth
endfunction
set foldmethod=expr
set foldexpr=FoldMethod(v:lnum)
【讨论】: