当前位置:网站首页>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改变折叠方式
边栏推荐
猜你喜欢
随机推荐
Shell运维开发基础(一)
DSP Trick:向量长度估算
sqlserver2019安装失败
Karatsuba大数乘法的Verilog实现
推荐系统-排序层-模型:Wide&Deep
VR全景市场拓展技巧之“拓客宝典”
- display image API OpenCV 】 【 imshow () to a depth (data type) at different image processing methods
【图像去雾】基于matlab暗通道和非均值滤波图像去雾【含Matlab源码 2011期】
How does Mysql query two data tables for the same fields in two tables at the same time
分治法求解中位数
23届微软秋招内推
《21天精通TypeScript-5》类型注解与原始类型
volta管理node版本
Daily practice of PMP | Do not get lost in the exam-8.2 (including agility + multiple choice)
LeetCode 264:丑数
实时目标检测新高地之#YOLOv7#更快更强的目标检测器
REST学习
jolt语法
requests库
第十二天&接口和协议









