给定以下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="ns*(S[^/]|_$)"me=s,re=s,he=s fold
这些设置使我能够折叠以//
开头的段落。
我的问题
当修改foldlevel
时(使用zr
和zm
),第一条注释(注释A)自动折叠。是否可以更改其折叠级别(例如将其设置为9)?
其他注释的折叠级别对我来说并不重要。
对于基于语法的折叠,折叠级别由语法结构决定。要获得9级折叠,您必须定义9个嵌套的语法区域。
使用:set foldmethod=expr
,您可以更好地控制折叠级别,并且可以显式返回9
。只要你只使用折叠注释,你就可以编写一个简单的等价表达式,但是如果还有其他折叠结构,那将很快变得复杂。