vim中用marker进行代码折叠

前言

和各种IDE相比,vim默认是没有开启折叠功能的,但在平时代码量较大的文件中,不论是阅读还是调试,频繁的翻页都显得非常繁琐,此时如果能适当进行折叠,效率会高很多,因此在这里简要地介绍一下如何用vim进行代码折叠

简介

首先我们需要知道vim中代码折叠的几种类型,有以下几种:

  1. manual,默认折叠方法,通过自行设定行区间或者选定代码段进行折叠,关闭vim折叠信息会丢失,若想要保存折叠信息,可以在退出文件之前运行:mkview命令,重启后用:loadview命令进行恢复,该命令生成的缓存文件位于~/.vim/view文件夹中,移动或重命名文件,折叠信息依旧会丢失
  2. indent,缩进折叠方法,相同的缩进中的代码会被折叠
  3. syntax,语法高亮折叠,在C/C++中会折叠花括号部分,其它格式代码中有的不能自动进行折叠
  4. marker,标记折叠方法,和manual操作上是一样的,不同之处在于关闭vim折叠信息不会丢失,而且易用控制和标注
  5. diff,对没有更改的文本进行折叠
  6. expr,用表达式来定义折叠

其中,比较常用的是indent和marker两种折叠方式,indent类似于IDE中的折叠方法,而marker明显是一种由于manual的折叠方式,其余四中一般较少使用,此文中主要介绍marker这种方法.

语法

首先我们需要在~/.vimrc中对折叠方式进行配置,涉及到以下几个命令:

设置折叠方法

set foldenable "启用折叠功能
set foldmethod=marker "设置折叠的方法为marker,也可以简写为set fdm=marker,注意等号两边不能有空格

折叠

方法一:

  1. 2G ,将光标跳转到第二行
  2. zf100G, 折叠第二行到第100行的代码,vim会在折叠的开始和结束自动添加三个连续的花括号作为标记

注1:折叠完成后按jk进行上下移动折叠部分会被看做一行,而若是用hl进行左右移动会被认为你想要编辑折叠代码段,折叠部分会自动展开

注2:折叠完成后vim会自动添加三个连续的花括号作为折叠的标记,可以在注释符和花括号之间添加介绍,说明折叠代码段的作用

方法二:

  1. 在normal模式下按v进入visual模式
  2. 选中要折叠的的代码段部分,按zf进行折叠

常用折叠命令

zf : 创建折叠

zF: 在当前行创建折叠,当一开始就计划要折叠所写代码的时候,可以用该命令创建一堆折叠符号,然后再往里面填写内容

:5,10fo : 折叠5到10行的代码

zd: 删除光标下的折叠

zo: 打开光标下的折叠,但是一般用hl左右移动就可以

zD: 删除光标下的折叠,以及嵌套的折叠

zO: 打开光标下的折叠,以及嵌套的折叠

zc: 关闭光标下已打开的折叠

zC: 关闭光标下已打开的折叠,以及嵌套的折叠

za: 当光标在关闭的折叠上时,打开之,当光标在打开的折叠上时,关闭之

zA: 和za效果一致,不过对其嵌套的折叠也有效

[z : 将光标移动到折叠的开始处

z] : 将光标移动到折叠的结束处

zj: 将光标移动到下一个折叠的开始处

zk: 将光标移动到前一个折叠的结束处

以上加粗的部分代表比较常用的命令.

参考

  1. 在vim中运行 :help folding命令,查看折叠的帮助文档
  2. https://blog.csdn.net/zcube/article/details/42325741
  3. https://zhuanlan.zhihu.com/p/27473875
  4. https://www.jianshu.com/p/16e0b822b682

原文地址:http://www.cnblogs.com/yukina/p/16784019.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性