您的位置:首页 > 编程语言

VIM设置代码折叠

2012-12-19 15:33 387 查看
VIM设置代码折叠
来源: ChinaUnix博客  日期: 2008.08.29 11:19 (共有条评论) 我要评论
在查看代码的时候,如果代码十分冗长,尤其是c/c++系列的时候,

代码结构比较让人难以理清,主要是各种注释、括号的匹配问题,

虽然可以用%来查看匹配的另外一半符号在哪里,但是如果这一对符号之间的代码超过了一页,甚至好几页的话,那么也是比较难以理解的。

于是可以使用这个vim所提供的折叠功能来简化这些分析。

我使用的vim是rh9自带的版本。

折叠的方式:

vim 提供 6中折叠方式

manual 手工定义折叠

indent 更多的缩进表示更高级别的折叠

expr 用表达式来定义折叠

syntax 用语法高亮来定义折叠

diff 对没有更改的文本进行折叠

marker 对文中的标志折叠

可用选项 'foldmethod' 来设定折叠方式:set fdm=*****。

注意,每一种折叠方式不兼容,即:你不能用expr又用marker方式。

目前我一般使用的都是indent 比较多。

使用时,用:set fdm=indent 命令来设置成marker折叠方式。

在.vimrc文件中添加设置,可以使得每次打开vi 都启动折叠方式。如添加:set fdm=syntax。

2. 折叠打开与折合

选取了折叠方式后,我们就可以对某些代码实施我们需要的折叠了。

如果使用了indent方式,vim会自动的对大括号的中间部分进行折叠,我们可以直接使用这些现成的折叠成果。

indent 对应的折叠代码有:

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" 时有效。

原文出处:
http://hi.baidu.com/flost_li/blog/item/aede68afcc7955c87dd92af7.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: