上一讲我们是程序员篇的第一讲,关于代码跳转。代码跳转是一个付出很少收获很大的功能。这一节我们开始一个收获很多,但是付出也相对多一点功能:代码折叠。
折叠有下面几种类型:
我们先看一个例子,左边是采用 syntax 方式进行折叠的,右边是采用 indent 方式。
从上面的例子可以看到,折叠方式的属性是跟窗口相关的,每个窗口都设置不同的折叠方式。
设置折叠的方式,是通过设置 foldmethod 属性来实现的,例:
- : set foldmethod = indent: set foldmehtod = syntax
折叠命令都是以 z 字开头的,对于中国人最友好了,就是折字的拼音首字母么。
最重要的折叠命令就是 za,切换折叠状态。
我们可以通过 zf 命令手动创建折叠。比如上图中,Pseudo code for int 21 那一段我们看着不爽,想把它折叠起来。
我们先切折叠模式:
- : set foldmethod = manual
然后移动到 Pseudo 那一行,输入创建命令:
- zf4j
zf 是创建折叠命令,后面接命令的范围,我们要创建这 5 行的折叠,所以我们用 4j 向下移动 4 行。
最后,在这 5 行上试试 zc 命令吧,就是下面这个效果:
我们如果可以数出来有几行的话,可以使用 zF 命令来创建,例:
- 5zF
上面就创建 5 行的折叠。
vim 虽然功能很全,但是不可能支持每一种我们想要的格式。我们还是需要写脚本来实现自己的折叠方式的。不过我们还没有学习 vimscript 的基础,这一部分后面我们再补课。
来源: https://yq.aliyun.com/articles/125687