vim 设置代码折叠

转载 2012年03月29日 21:47:24

今天看了一下别人写的程序的源代码,发现是用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" 时有效。

vim代码折叠功能

问题:怎样在vim中实现代码折叠功能? 解决方法:直接使用vim自带的快捷键和命令,便可以实现功能强大的折叠 小试折叠: 1 :set fdm=marker 在vim中执行该命令 2 5G...
  • zcube
  • zcube
  • 2015年01月01日 23:08
  • 11573

Vim技巧#Vim foldmethod代码折叠功能

问题:怎样在vim中实现代码折叠功能? 解决方法:直接使用vim自带的快捷键和命令,便可以实现功能强大的折叠 小试折叠: :set fdm=marker 在vim中执行该命令 5G 将...
  • qq_27968607
  • qq_27968607
  • 2017年03月09日 11:10
  • 1235

vim 配置文件.vimrc,高亮+自动缩进+行号+折叠+优化

vim 配置文件 ,高亮+自动缩进+行号+折叠+优化 将一下代码copy到 用户目录下 新建文件为  .vimrc 保存即可生效; 如果想所有用户生效 请修改 /etc/vimrc (建议先cp一...
  • sunxiaopengsun
  • sunxiaopengsun
  • 2017年02月13日 14:41
  • 503

vim 中代码的折叠和打开

文章转自:http://liufabin66688.blog.163.com/blog/static/13968548200810140486304/ 在查看代码的时候,如果代码十分冗长,尤...
  • WOSHICSDN7547
  • WOSHICSDN7547
  • 2015年04月29日 11:17
  • 10606

VIM折叠的几种用法

vim 有几种折叠策略。一般默认的是手动折叠(manual)。如果是写程序,可以按语法(syntax)折叠,或者按缩进(indent)折叠。方法是 :set foldmethod=syntax 或者是...
  • u014057054
  • u014057054
  • 2017年05月22日 15:49
  • 355

vim 折叠的用法

vim 折叠的用法   http://www.cnblogs.com/fakis/archive/2011/04/14/2016213.html 1. 折叠方式 可用选项来设定折叠...
  • dearwind153
  • dearwind153
  • 2016年08月06日 17:32
  • 711

vim 代码折叠设置

vim折叠的方式有6种,如下: 1. manual //手工定义折叠 2. indent //用缩进表示折叠 3. expr  //用表达式来定义折叠 4. syntax //用语法高亮来定义...
  • xiyanlgu
  • xiyanlgu
  • 2014年05月15日 14:59
  • 1786

VIM设置代码折叠

今天看了一下别人写的程序的源代码,发现是用vim写的,代码中有趣是用vim来折叠代码,一开始我以为是用插件的,后来上网查了查,得出以下使用方面的技巧。 1. 折叠方式 可用选项来设定折叠方...
  • junli_chen
  • junli_chen
  • 2017年02月10日 18:59
  • 87

VIM设置代码折叠

在查看代码的时候,如果代码十分冗长,尤其是c/c++系列的时候, 代码结构比较让人难以理清,主要是各种注释、括号的匹配问题, 虽然可以用%来查看匹配的另外一半符号在哪里,但是如果这一对符号之间的代码超...
  • lizhifeng2009
  • lizhifeng2009
  • 2013年04月18日 17:21
  • 439

配置MacVim,高亮+自动缩进+行号+折叠+优化

将一下代码copy到 用户目录下 新建文件为  .vimrc 保存即可生效; 如果想所有用户生效 请修改 /etc/vimrc (建议先cp一份) "===================...
  • JineD
  • JineD
  • 2015年11月22日 11:29
  • 1286
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:vim 设置代码折叠
举报原因:
原因补充:

(最多只允许输入30个字)