前言
vim 折叠设置
模式
(1) manual 模式:set foldmethod=manual
创建折叠区 : zf
开启
关闭
删除
移动
(2) indent模式:set foldmethod=indent
(3) marker模式:set foldmethod=marker
总结
前言
本文章旨在总结自己在利用 Vim 阅读和写代码过程中所用的折叠代码的方法。
vim 折叠设置
vim 自带代码折叠功能。在 vim 中折叠设置:set fdm=xxx(fdm< foldmethod >缩写),可在 .vimrc 文件中定义实现,可永久有效。vim 自带的代码折叠有 manual,indent,marker,diff,syntax,expr等六种模式。
manual:手工定义折叠
indent:按缩进折叠
marker:用标记/{{{/ /}}}/来定义折叠
diff:比较模式,对没有更改的文本进行折叠
syntax:用语法高亮来定义折叠
expr:用表达式进行折叠
模式
(1) manual 模式:set foldmethod=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 foldmethod=indent
此模式下的折叠功能依据缩进自动进行,zf 在此模式中无效,在此基础上对折叠区进行开启、关闭和移动等操作与手动模式的一致。
:set foldlevel=1 #指定级别折叠缩进
:set foldlevelstart=99 #避免启动编辑器代码自动折叠
(3) marker模式:set foldmethod=marker
此模式默认按{{{ }}}标志作为缩进依据,zf 会自动生成该标志,在此基础上对折叠区进行开启、关闭、删除和移动等操作与手动模式的一致。
:set foldlevelstart=99 #避免启动编辑器代码自动折叠
总结
以上命令会持续补充,可以说“条条大路通罗马”,为完成一个任务可能不止一种方法,有好的方法可以完成相同的任务也欢迎大家提出宝贵的意见。
————————————————
版权声明:本文为CSDN博主「guihunkun」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/guihunkun/article/details/123261809
联系客服