vim折叠

以下是我学习vim折叠的总结,很多来自参考文章。
1.开启折叠功能
  在~/.vimrc中添加set foldenable,或每次用vim打开文件时候用命令:set foldenable

2.设置折叠的方式
  在~/.vimrc中输入set foldmethod=xxx或set fdm=xxx,或在vim中输入:如上命令,xxx为如下6中打开方式。
  在~/.vimrc中设置每次打开都有效。
  注意,每一种折叠方式不兼容,如不能既用expr又用marker方式。
有6种方法来选定折叠:    
manual          手工定义折叠         
indent           更多的缩进表示更高级别的折叠         
expr              用表达式来定义折叠         
syntax           用语法高亮来定义折叠         
diff                对没有更改的文本进行折叠         
marker           对文中的标志折叠

3. 折叠命令
  选取了折叠方式后,我们可以采用以下命令进行折叠,如果使用了indent方式,vim会自动的对大括号的中间部分进行折叠,我们可以直接使用这些现成的折叠成果。
  在可折叠处(大括号中间):
zc      折叠
zC     对所在范围内所有嵌套的折叠点进行折叠
zo      展开折叠
zO     对所在范围内所有嵌套的折叠点展开
[z       到当前打开的折叠的开始处。
]z       到当前打开的折叠的末尾处。
zj       向下移动。到达下一个折叠的开始处。关闭的折叠也被计入。
zk      向上移动到前一折叠的结束处。关闭的折叠也被计入。
  如果使用了marker方式时,需要用标计来标识代码的折叠,系统默认是{{{和}}},最好不要改动
我们可以使用下面的命令来创建和删除折叠:
zf      创建折叠,比如在marker方式下:                  
         zf56G,创建从当前行起到56行的代码折叠;                  
         10zf或10zf+或zf10↓,创建从当前行起到后10行的代码折叠。                  
         10zf-或zf10↑,创建从当前行起到之前10行的代码折叠。                  
         在括号处zf%,创建从当前行起到对应的匹配的括号上去((),{},[],<>等)。
 
zd      删除 (delete) 在光标下的折叠。
         仅当 'foldmethod' 设为 "manual" 或 "marker" 时有效。
 
zD     循环删除 (Delete) 光标下的折叠,即嵌套删除折叠。
         仅当 'foldmethod' 设为 "manual" 或 "marker" 时有效。
 
zE      除去 (Eliminate) 窗口里“所有”的折叠。
         仅当 'foldmethod' 设为 "manual" 或 "marker" 时有效。
zfgg   从当前位置折叠到文件头,适合头文件的注释
         仅当 'foldmethod' 设为 "manual" 或 "marker" 时有效。
另外可以使用以下命令进行折叠的全部打开和关闭
    一次打开所有折叠:
    zr  zR(用于有递归折叠的时候,功能与zr类似)
    一次关闭所有折叠:
    zm  zM(用于有递归折叠的时候,功能与zm类似)
4.折叠控制
   有时候,查看或记住一个折叠在哪儿,挺不容易的。更别说用|zo| 命令来打开了。要查看那些已定义的折叠:
        :set foldcolumn=4
   这个命令将在窗口左边显示一小栏来标识各个折叠。一个"+" 表示某个关闭的折叠。一个"-" 表示每个打开的折叠的开头,而"|" 则表示该折叠内其余的行。
取消左边的小栏:
        :set foldcolumn=0
 
5.存储和恢复一个折叠:
  当你关闭一个文件,去做其他事情,或编辑其他文件,回来以后编辑同一个文件,如果折叠是手动方式创建的,则所有的折叠都消失了!为了保存折叠,可以使用:
  :mkview
  这将存储那些影响文件视图的设定及其他内容。
  稍后回到同一个文件时,可以重新载入这个视图:
  :loadview
  你可以为一个文件储存多至十个视图。例如,把当前设置储存为第三个视图,并载入第二个视图:
  :mkview 3
  :loadview 2

参考文章:
http://www.cnblogs.com/fakis/archive/2011/04/14/2016213.html
http://www.cnblogs.com/fstang/archive/2012/11/28/2793171.html
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值