当前位置:网站首页>vim 折叠函数
vim 折叠函数
2022-08-03 07:39:00 【hjjdebug】
"vim 语句尾不能加分号
"foldexpr 表达式
"按空行折叠, 也可看作按段落折叠
fun! FoldBlank(lnum)
let ln=a:lnum
if getline(ln)=~'^\s*$' && getline(ln+1)=~'\S'
return '<1'
else
return 1
endif
endf
"按行首空格折叠
"一行字符串中的前导空格个数, make -d 的输出采用了这种格式
fun! FoldSpace(line)
let i=0
let res=0
while(i<len(a:line))
if line[i]==' '
let res = res + 1
else
return res
endif
let i=i+1
endw
return res
endf
"按{}折叠, c/c++ 函数可用此法
fun! FoldBrace(line)
let l:p1=match(a:line,'{')
let l:p2=match(a:line,'}')
if l:p1>=0 && l:p2>=0
return '='
elseif l:p1>=0
return 'a1'
elseif l:p2>=0
return 's1'
else
return '='
endif
endf
set foldexpr=FoldBlank(v:lnum)
"set foldexpr=FoldSpace(getline(v:lnum))
"set foldexpr=FoldBrace(getline(v:lnum))
"其中v:lnum 在foldexpr 中是一个变数,从1一直变到文件尾
"使用方法:
"set foldmethod=expr
"默认是按空行折叠,你可以随时设置foldexpr改变折叠方式
边栏推荐
猜你喜欢
随机推荐
如何在安装GBase 8c数据库的时候,报错显示“Host ips belong to different cluster?
2022年 SQL 优化大全总结详解
boot - SSE
mysql系统变量与状态变量
跨域嵌套传递信息(iframe)
【云原生--Kubernetes】kubectl命令详解
基于SSM开发的的小区物业管理系统小程序源码
pgaudit 的安装使用《postgresql》
VR全景市场拓展技巧之“拓客宝典”
如何让背景色在任何设备宽高都能填充整个屏幕
Roson的Qt之旅#106 QML在图片上方放置按钮并实现点击按钮切换图片
Neo4j 4.X:导入OWL文件
Logic Pro X自带音色库列表
mysqlbinlog: unknown variable 'default-character-set=utf8'
《剑指Offer》刷题之打印从1到最大的n位数
数据库表结构文档 生成工具screw的使用
postman将接口返回结果生成json文件到本地
Evaluate:huggingface评价指标模块入门详细介绍
vs 2022无法安装 vc_runtimeMinmum_x86错误
【图像去雾】基于matlab暗通道和非均值滤波图像去雾【含Matlab源码 2011期】








