问题:怎样在vim中实现代码折叠功能?
解决方法:直接使用vim自带的快捷键和命令,便可以实现功能强大的折叠
小试折叠:
- :set fdm=marker 在vim中执行该命令
- 5G 将光标跳转到第5行
- zf10G 折叠第5行到第10行的代码,vim会在折叠的开始和结束自动添加三个连续的花括号作为标记
- zR 打开所有折叠
- zM 关闭所有折叠
- zE 删除所有的折叠标签
- 退出vim窗口再次打开,执行2-6步。依然可以折叠,但是没有标记了。重新打开后折叠信息会丢失。
折叠方法:
- manual (不常用)默认折叠方法,如上面第7步即为该方法,关闭vim折叠会丢失。如果想保持折叠信息,可运行 :mkview 命令,重启后用 :loadview 命令回复。该命令生成的缓存文件位于 ~/.vim/view 文件夹中。移动或重命名文件,折叠信息依然会丢失。
- indent (常用)缩进折叠方法,相同的缩进中代码会被折叠。
- syntax (不常用)语法高亮折叠,在c/c++中会折叠花括号部分,其它格式代码中有的不能自动折叠。
- marker (常用)标记折叠方法,如上面1-6所使用的方法。关闭vim折叠信息不会丢失,而且易用控制和标注。
- 还有两种 diff 和 expr,目前我还没有用过。
具体介绍:
1. 以 marker 为例,可以在vim中运行 :set fdm=marker 来设置折叠方法设置。折