" 这儿定义依表达式折叠用的函数
function MyFoldfun(lineNum)
if getline(a:lineNum)=~'^ *{' && getline(a:lineNum) !~ '}'
return 'a1'
elseif getline(a:lineNum)=~'^ *}' && getline(a:lineNum)!~'{'
return 's1'
elseif getline(a:lineNum)=~'.\+{' && getline(a:lineNum) !~'}' && getline(a:lineNum)!~'".*{.*"'
return 'a1'
elseif getline(a:lineNum)=~'.\+}' && getline(a:lineNum) !~ '{' &&
getline(a:lineNum)!~'".*}.*"'
return 's1'
elseif getline(a:lineNum)=~'^//' && getline(a:lineNum+1)=~'^//' &&
getline(a:lineNum-1)!~'^//'
return 'a1'
elseif getline(a:lineNum)=~'^//' && getline(a:lineNum-1)=~'^//'&&
getline(a:lineNum+1)=~'^//'
return '='
elseif getline(a:lineNum)=~'^//'&&getline(a:lineNum-1)=~'^//'&&
getline(a:lineNum+1)!~'^//'
return 's1'
else return '='
endif
endfunction
“设置折叠方式
set foldmethod=expr set foldexpr=MyFoldfun(v:lnum)
|