【转】vim折叠功能
原文: https://www.yupengsir.com/topic/content?i=140
这个作者的vim系列是高级的用法, 要学习一下。
https://blog.easwy.com/archives/advanced-vim-skills-advanced-move-method/
---------------------------------------------------------------------------------------------
一、简介
vim自带代码折叠功能,会使得我们开发时更简单。在vim中折叠设置:set fdm=xxx(fdm<>foldmethod缩写),可在.vimrc中定义实现永久有效,有manual,indent,marker,diff,syntax,expr等5种模式,此处介绍前三种。
-
manual:手工定义折叠
-
indent:按缩进折叠
-
marker:用标记/*{{{*/ /*}}}*/来定义折叠
-
diff:比较模式,对没有更改的文本进行折叠
-
syntax:用语法高亮来定义折叠
-
expr:用表达式进行折叠
二、使用
1、manual模式:set fdm=manual
说明:此模式下的折叠功能只能依靠人工创建折叠范围区,在此基础上对折叠区进行开启、关闭、删除和移动等操作。
-
zf:创建折叠区
-
vj/vk/vG/vgg选中区域后执行zf
-
zfnj:从当前行开始向下到n行折叠
-
zfnk:从当前行开始向上到n行折叠
-
zfgg:从当前行到第一行折叠
-
zfG:从当前行到最后一行折叠
-
zfngg:从当前行到第n行折叠
-
zfap:按段落折叠
-
zfa(:折叠括号包围的区域(如:()、[]、{}、><等)
-
开启
-
za:开启/关闭当前折叠区,任何时候有效
-
zi:开启/关闭所有级折叠区,仅对对自己开启的折叠区有效
-
zv/zo:打开当前折叠区
-
zO:打开当前所有级折叠区
-
zr:打开同一级折叠区
-
zR:递归打开所有折叠区
-
关闭
-
zm:关闭同一级折叠区
-
zM:关闭所有级折叠区
-
zc:关闭当前折叠区
-
zC:关闭选取范围内所有级折叠区
-
zn:禁用折叠
-
zN:启用折叠
-
删除
-
zd:删除当前折叠区
-
zD:删除当前所有级折叠区
-
zE:删除窗口内所有折叠区
-
移动
-
zj:向下一个折叠点移动
-
zk:向上一个折叠点移动
-
[z:移动到打开后的折叠区的开始处
-
]z:移动到打开后的折叠区的结束处
-
注意
-
vim不会自动记忆手工折叠点需要如下命令进行保存/读取
-
:mkview 进行保存
-
:loadview 进行读取
2、indent模式:set fdm=indent
说明:此模式下的折叠功能依据缩进自动进行,zf在此模式中无效,在此基础上对折叠区进行开启、关闭和移动等操作与手动模式的一致。
:set foldlevel=1 #指定级别折叠缩进
:set foldlevelstart=99 #避免启动编辑器代码自动折叠
3、marker模式:set fdm=marker
说明:此模式默认按{{{ }}}标志作为缩进依据,zf会自动生成该标志,在此基础上对折叠区进行开启、关闭、删除和移动等操作与手动模式的一致。
:set foldlevelstart=99 #避免启动编辑器代码自动折叠
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
2017-08-24 java中byte类型
2016-08-24 php单元测试到底是什么东西呢?