搜索

vim中用marker进行折叠


发布时间: 2022-11-24 18:00:05    浏览次数:11 次

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
免责声明 vim中用marker进行折叠,资源类别:文本, 浏览次数:11 次, 文件大小:-- , 由本站蜘蛛搜索收录2022-11-24 06:00:05。此页面由程序自动采集,只作交流和学习使用,本站不储存任何资源文件,如有侵权内容请联系我们举报删除, 感谢您对本站的支持。 原文链接:https://www.cnblogs.com/yukina/p/16784019.html