Vim为浏览大型文件提供的一个强大工具是折叠。折叠功能支持文件部分内容的隐藏,隐藏的依据既可以是预定义的规则,也可以是手动添加的折叠标记。
1.折叠Python代码
首先,需要在.vimrc文件中将foldmethod设置为indent,设置代码如下。
set foldmethod=indent
将光标移动到其中一个折叠行上,输入zo可以打开当前折叠,输入zc都会将此折叠关闭
输入za可切换折叠状态(打开关闭的折叠或关闭打开的折叠)。输入zR和zM分别用于同时打开和关闭所有折叠。
2.折叠的类型
从某种意义上来说,Vim在折叠代码方面是比较智能的,而且支持多种折叠方式。折叠的方法由.vimrc文件中的foldmethod选项来指定。Vim支持如下折叠方式。
· manual:手动折叠,这种方法对于长文本而言并不适用。
· indent:基于缩进的折叠,这对于依赖缩进的编程语言非常合适(不管哪种语言,标准的编码风格中总是会采用某种一致性的缩进。因此,当读者想要快速隐藏不关心的代码时,indent折叠方式不失为一种高效率的选择)。
· expr:基于正则表达式的折叠。如果读者想要用复杂的规则来定义折叠,那么可以选择这种方式。
· marker:使用文本中特殊的标记来定义折叠,比如{{{和}}}。这种方法对于管理很长的.vimrc文件非常有效,但是在Vim之外不常用,因为这种方式需要修改文件内容。
· syntax提供了可识别语法的折叠,但它并非对所有语言都开箱即用(不支持Python)。
· diff:当Vim处于diff模式时会自动采用这种折叠方式,diff模式下需要展示两个文件的不同之处,而相同之处往往需要隐藏起来
设置折叠方式的方法为在.vimrc文件中加入set foldmethod=<折叠方法>。