当前位置:网站首页>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改变折叠方式
边栏推荐
猜你喜欢
随机推荐
thop 使用心得
pyspark---encode the suuid interval (based on the number of exposures and clicks)
Poke the myth of Web3?Poke the iron plate.
2022年 SQL 优化大全总结详解
Docker启动mysql
集群
drop database出现1010
REST学习
tmp
postman将接口返回结果生成json文件到本地
升级
数仓埋点体系与归因实践
解决GANs训练中模式崩塌/训练崩溃的十五个方法
postman将接口返回结果生成csv文件到本地
volta管理node版本
服务器资源监控工具-nmon、nmon_analyser
ArcEngine(二)加载地图文档
推荐系统-排序层-精排模型:LR、GBDT、Wide&Deep、DCN、DIN、DIEN、MMOE、PLE
【云原生--Kubernetes】Pod重启策略
consul理解