当前位置:网站首页>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改变折叠方式
边栏推荐
猜你喜欢
随机推荐
ArcEngine(一)加载矢量数据
How to choose a reliable and formal training institution for the exam in September?
sqlserver2019安装失败
【图像去噪】基于matlab稀疏表示KSVD图像去噪【含Matlab源码 2016期】
如何让背景色在任何设备宽高都能填充整个屏幕
pyspark df secondary sorting
解决GANs训练中模式崩塌/训练崩溃的十五个方法
AI中台序列标注任务:三个数据集构造过程记录
tmp
Oracle Rac 集群文件目录迁移
MySQL or使索引失效
差分(前缀和的逆运算)
23届微软秋招内推
ArcEngine(五)用ICommand接口实现放大缩小
分治法求解中位数
智能客服,还有多少AI泡沫?
Charles抓包工具学习记录
HCIP笔记整理 2022/7/20
推荐系统-排序层-模型:Wide&Deep
002-字段不为null








