有时候看代码时,代码太长看着不方便,特别是阅读源码时,需要把不关心的代码先折叠起来,看自己当前最关注的代码。vim中自带了代码折叠功能。
配置foldmethod可以定义折叠方式,有6种可选方式:
1. manual //手工定义折叠
2. indent //用缩进表示折叠
3. expr //用表达式来定义折叠
4. syntax //用语法高亮来定义折叠
5. diff //对没有更改的文本进行折叠
6. marker //用标志折叠
2. indent //用缩进表示折叠
3. expr //用表达式来定义折叠
4. syntax //用语法高亮来定义折叠
5. diff //对没有更改的文本进行折叠
6. marker //用标志折叠
我选用syntax来定义折叠,这种方式比较简单,但是当配置完这个值后,你打开代码,就会发现vim默认把所有代码都折叠了,这显然不是我想要的,google一番后找到办法,设置foldlevelstart为99后,打开默认没有折叠。
配置:
配置完后就可以在方法上,类上,if-else上,各种迭代器上,你想得到的块上敲入折叠命令,这里提供最简单的折叠命令:
zc 关闭折叠
zo 打开折叠
za 打开/关闭折叠互相切换
我的代码折叠的完整配置:
set foldenable " 开始折叠
set foldmethod=syntax " 设置语法折叠
set foldcolumn=0 " 设置折叠区域的宽度
setlocal foldlevel=1 " 设置折叠层数为
set foldlevelstart=99 " 打开文件是默认不折叠代码
"set foldclose=all " 设置为自动关闭折叠
nnoremap <space> @=((foldclosed(line('.')) < 0) ? 'zc' : 'zo')<CR>
" 用空格键来开关折叠