前言 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 |
|