今天看了一下别人写的程序的源代码,发现是用vim写的,代码中有趣是用vim来折叠代码,一开始我以为是用插件的,后来上网查了查,得出以下使用方面的技巧。

1. 折叠方式

可用选项来设定折叠方式:

可在Vim 配置文件中设置 set fdm=XXX
可直接在文件中使用注释调用vim命令 /* vim: set fdm=XXX: */

有6种方法来选定折叠:

1
2
3
4
5
6
manual          手工定义折叠         
indent           更多的缩进表示更高级别的折叠         
expr              用表达式来定义折叠         
syntax           用语法高亮来定义折叠         
diff                对没有更改的文本进行折叠         
marker           对文中的标志折叠

注意,每一种折叠方式不兼容,如不能既用expr又用marker方式,我主要轮流使用indent和marker方式进行折叠。

使用时,用 set fdm=marker 命令来设置成marker折叠方式(fdm是foldmethod的缩写)。
要使每次打开vim时折叠都生效,则在.vimrc文件中添加设置,如添加:set fdm=syntax,就像添加其它的初始化设置一样。

2. 折叠命令

选取了折叠方式后,我们就可以对某些代码实施我们需要的折叠了,由于我使用indent和marker稍微多一些,故以它们的使用为例:如果使用了indent方式,vim会自动的对大括号的中间部分进行折叠,我们可以直接使用这些现成的折叠成果。

在可折叠处(大括号中间):

1
2
3
4
5
6
7
8
zc      折叠
zC     对所在范围内所有嵌套的折叠点进行折叠
zo      展开折叠
zO     对所在范围内所有嵌套的折叠点展开
[z       到当前打开的折叠的开始处。
]z       到当前打开的折叠的末尾处。
zj       向下移动。到达下一个折叠的开始处。关闭的折叠也被计入。
zk      向上移动到前一折叠的结束处。关闭的折叠也被计入。

当使用marker方式时,需要用标计来标识代码的折叠,系统默认是{{{和}}},最好不要改动

我们可以使用下面的命令来创建和删除折叠:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
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" 时有效。

最新文章

  1. MyEclispe发布web项目-遁地龙卷风
  2. POJ3279 Fliptile(暴力)
  3. SqlServer2008 无法修改表,超时时间已到 在操作完成之前超时解决方法
  4. AchartEngine的柱状图属性设置
  5. Introduction of SQLite
  6. 解决 Eclipse 项目有红感叹号的方法
  7. iptables 开启80端口
  8. Linux C编程一站式学习
  9. jdom学习读取XML文件
  10. Java Concurrency - ReentrantLock
  11. POJ 1579 Function Run Fun
  12. 网络编程Socket之TCP
  13. 2C 产品的本质是人性,2B 产品的背后是业务(转)
  14. hdu1561 The more, The Better 树形DP+分组背包
  15. PHP平台CMS系统Drupal小试身手----安装教程
  16. 确保 PHP 应用程序的安全 -- 不能违反的四条安全规则
  17. Bridge (br0) Network on Linux
  18. 【原创】POJ 3259 Wormholes(Bellman-Ford) &amp;&amp; 简介Bellman-Ford算法
  19. bash变量详解
  20. yii2.0 手动配置redis

热门文章

  1. cocos2d-x 3.0 WIN7+VS2012 安卓平台搭建
  2. 用开源项目cropper实现对图片中任意部分进行裁剪
  3. 我们为什么不用 MVC 拦截器
  4. GPS定位基本原理浅析
  5. [leetcode]Sqrt(x) @ Python
  6. 用非递归、不用栈的方法,实现原位(in-place)的快速排序
  7. thinkphp生成的验证码不显示问题解决
  8. Android -- View流程
  9. Android -- com.android.providers.media,external.db
  10. 建模角度理解word embedding及tensorflow实现