根据vim中的语法更改折叠级别

时间:2014-07-21 11:49:16

标签: c++ vim fold

给出以下C ++代码:

//
// Some comments at the begin of the code.
// For instance, license, author name, date.
// Referred as "Comment A"
//

namespace one {
  namespace two {

    // Here you have some code.
    // And this comment explain what the code is doing.
    void exampleFunction();

  }
}

以及.vimrc中的以下设置

set foldmethod=syntax
autocmd Syntax c,cpp syntax region cCommentLicense start="^\s*//" end="\n\s*\(\S[^/]\|\_$\)"me=s,re=s,he=s fold

这些设置使我可以折叠以//开头的段落。

我的问题

修改foldlevel后(使用zrzm),第一条评论(评论A)会自动折叠。 是否可以更改其折叠级别(例如将其设置为9)?

其他评论的弃牌水平对我来说无关紧要。

1 个答案:

答案 0 :(得分:2)

使用基于语法的折叠,折叠级别由语法结构决定。要获得9级折叠,您必须定义9个嵌套语法区域。

使用:set foldmethod=expr,您可以更好地控制折叠级别,并且可以显式返回9。只要您只折叠折叠注释,您就可以编写一个简单的等效表达式,但如果还有其他折叠结构,则会很快变得复杂。