转自:http://tech.bobgo.net/?p=76
vim 一共有 5 种折叠方法,依次为手工折叠、缩进折叠、语法折叠、标记折叠、表达式折叠和根据标志折叠。可以通过变量 foldmethod 选择具体的折叠方式,常用的为 syntax 和 indent。分别为根据缩进折叠这根据语法折叠。缩进折叠适用于绝大数的编程语言,特别适用于python,而对于 C 语言,vim 提供了很好的 syntax folding 支持。
设置在VIM中对C/C++采用语法方式折叠的方法为:
1. 在~/.vim/after/syntax/下的语法文件c.vim中加入如下几行:
syn region myFold start="{" end="}" transparent fold " 设置起止符号
syn sync fromstart
2. 在~/.vimrc中加入如下几行:
set foldmethod=syntax " 设置实用语法方式折叠
set foldnestmax=2 " 设置最大折叠深度
折叠相关的常用命令有:
zc 折叠
zC 对所在范围内所有嵌套的折叠点进行折叠
zo 展开折叠
zO 对所在范围内所有嵌套的折叠点展开
zi 折叠/打开所有折叠行
[z 到当前打开的折叠的开始处。
]z 到当前打开的折叠的末尾处。
zj 向下移动。到达下一个折叠的开始处。关闭的折叠也被计入。
zk 向上移动到前一折叠的结束处。关闭的折叠也被计入。