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