我在foldmethod=syntax
文件中使用.vimrc
。它适用于像这样的C函数:
int some_fun(int i) {
return i;
}
但是,它不能使用第一行中有断行的函数:
int some_fun2(int i,
int i2) {
return i;
}
我可以让Vim理解折叠应该从{
开始,而不是函数定义开始的地方吗?
答案 0 :(得分:2)
是的,但您必须使用正确的定义来扩充syntax/c.vim
语法文件。以下行负责折叠{...}
块的默认行为:
syn region cBlock start="{" end="}" transparent fold
您必须使用考虑函数定义的函数定义(它也将在该文件中找到其语法模式)覆盖它,并将其放入~/.vim/after/syntax/c.vim
。这样做的一个挑战是函数定义的开始匹配现在会模糊默认匹配,因此像int
这样的元素和函数名称可能会失去其突出显示。也许零宽度匹配可能会阻止这种情况,或者您可以使用matchgroup
。如果所有这些听起来都很好,请不要打扰。也许你没有找到这样的语法修改这一事实意味着它太难了。