根据vim中的语法更改折叠级别
Change fold level based on syntax in vim
给定以下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
。只要你只使用折叠注释,你就可以编写一个简单的等价表达式,但是如果还有其他折叠结构,那将很快变得复杂。
相关文章:
- 1d 智能指针不适用于语法 (*)++
- 助记符和指向成员语法的指针
- 有人能分解一下这个c++模板的语法吗
- C++避免重复声明的语法是什么
- QMetaObject invokeMethod的基于函数指针的语法
- 这个语法std::class<>{}(arg1, arg2) 在C++中是什么意思?
- 正在折叠转发引用
- 为什么包含windows.h会产生语法错误,从而阻止类的实例化?(C2146,C2065)
- 带有用户定义类的c++折叠表达式
- 单独定义模板化嵌套类方法的正确语法
- 共享指针和具有自定义删除程序的唯一指针之间的语法差异背后的任何原因
- 错误 C2760:语法错误:映射迭代器上意外的标记"标识符",预期的";"
- 为什么我会收到错误 C2143 语法错误:缺少"*"之前的';'?
- 奇怪的代码抛出编译错误模板< J,int aSize=10> C2143:语法错误:在"<"之前缺少";"
- 使用基类指针调用基类的值构造函数的语法是什么?
- 很好的语法来获取对向量/数组数据的大小引用?
- C++语法运算符功能?
- VIM语法折叠:禁用折叠多行注释
- 根据vim中的语法更改折叠级别
- 将任意数量的迭代器对折叠成一个新的迭代器.元编程以获得良好的语法