vim 折叠的用法

http://www.cnblogs.com/fakis/archive/2011/04/14/2016213.html

1. 折叠方式

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

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

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

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

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

2. 折叠命令

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

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

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

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

01    zf      创建折叠,比如在marker方式下:                  
02             zf56G,创建从当前行起到56行的代码折叠;                  
03             10zf或10zf+或zf10↓,创建从当前行起到后10行的代码折叠。                  
04             10zf-或zf10↑,创建从当前行起到之前10行的代码折叠。                  
05             在括号处zf%,创建从当前行起到对应的匹配的括号上去((),{},[],<>等)。
06    
07    zd      删除 (delete) 在光标下的折叠。
08             仅当 ‘foldmethod‘ 设为 "manual" 或 "marker" 时有效。
09    
10    zD     循环删除 (Delete) 光标下的折叠,即嵌套删除折叠。
11             仅当 ‘foldmethod‘ 设为 "manual" 或 "marker" 时有效。
12    
13    zE      除去 (Eliminate) 窗口里“所有”的折叠。
14             仅当 ‘foldmethod‘ 设为 "manual" 或 "marker" 时有效。

http://yyq123.blogspot.com/2011/09/vim-fold.html

当我们查看很长的文本时(比如程序代码),可以使用:set foldenable命令来启动折叠。首先将内容按照其结构折叠起来,查看文件的大纲,然后再针对待定的行展开折叠,显示文本的详细内容。

Vim将折叠等同于行来对待——你可以使用j或k命令,移动跳过包含多行的整个折叠;也可以使用y或d命令,复制或删除某个折叠。

通常在折叠处向左或向右移动光标,或者进入插入模式,都将会自动打开折叠。我们也可以使用以下命令定义快捷键,使用空格键关闭当前打开的折叠,或者打开当前关闭的折叠。

:nnoremap <space> za

按照折叠所依据的规则,可以分为Manual(手工折叠)、Indent(缩进折叠)、Marker(标记折叠)和Syntax(语法折叠)等几种。

Manual Fold

使用以下命令,启用手工折叠。

:set foldmethod=manual

在可视化模式下,使用以下命令,将折叠选中的文本:

zf

通过组合使用移动命令,可以折叠指定的行。例如:使用zf70j命令,将折叠光标之后的70行;使用5zF命令,将当前行及随后4行折叠起来;使用zf7G命令,将当前行至全文第7行折叠起来。

我们也可以使用以下命令,折叠括号(比如()、[]、{}、><等)包围的区域:

zfa(

Vim并不会自动记忆手工折叠。但你可以使用以下命令,来保存当前的折叠状态:

:mkview

在下次打开文档时,使用以下命令,来载入记忆的折叠信息:

:loadview

可以使用以下命令,查看关于手工折叠的帮助信息:

:help fold-manual

Indent Fold

使用以下命令,启用缩进折叠。所有文本将按照(选项shiftwidth 定义的)缩进层次自动折叠。

:set foldmethod=indent

使用zm命令,可以手动折叠缩进;而利用zr命令,则可以打开折叠的缩进。

使用以下命令,将可以根据指定的级别折叠缩进:

:set foldlevel=1

可以使用以下命令,查看关于缩进折叠的帮助信息:

:help fold-indent

Syntax Fold

使用以下命令,启用语法折叠。所有文本将按照语法结构自动折叠。

:set foldmethod=syntax

可以使用以下命令,查看关于语法折叠的帮助信息:

:help fold-syntax

Marker Fold -- 常用

使用以下命令,启用标记折叠。所有文本将按照特定标记(默认为{{{和}}})自动折叠。

:set foldmethod=marker

我们可以利用标记折叠,在文本中同时体现结构和内容,并且能够快速跳转到文件的不同部分。

可以使用以下命令,查看关于标记折叠的帮助信息:

:help fold-marker

折叠选项

使用:set foldcolumn=W命令(W是一个0-12的整数),将在屏幕左侧显示一个折叠标识列,分别用“-”和“+”而表示打开和关闭的折叠。

使用以下命令,可以查看关于折叠的帮助信息:

:help folding

命令小结
zc 关闭当前打开的折叠
zo 打开当前的折叠
zm 关闭所有折叠
zM 关闭所有折叠及其嵌套的折叠
zr 打开所有折叠
zR 打开所有折叠及其嵌套的折叠
zd 删除当前折叠
zE 删除所有折叠
zj 移动至下一个折叠
zk 移动至上一个折叠
zn 禁用折叠
zN 启用折叠
时间: 2024-10-07 15:22:17

vim 折叠的用法的相关文章

Vim 折叠

set foldmethod=indent "set default foldmethod "zi 打开关闭折叠 "zv 查看此行 zm 关闭折叠 zM 关闭所有 zr 打开 zR 打开所有 zc 折叠当前行 zo 打开当前折叠 zd 删除折叠 zD 删除所有折叠 1. 折叠方式 可用选项 'foldmethod' 来设定折叠方式:set fdm=*****. 有 6 种方法来选定折叠: manual           手工定义折叠 indent             更

vim的常用用法总结

vim和vi用法基本上一样,vim更强大一些,还有颜色标示.vim的使用,vim有三种模式分别是一般模式,编辑模式,命令模式. 一般模式:删除.复制和粘贴 x:向后删除        X:向前删除       nx:向后删除n个字符       dd:删除当行       D:删除当行字符       ndd:删除当前行向下的n行       yy:复制光标所在的行       p:将复制的数据粘贴在光标的下一行       P:将复制的数据粘贴在光标的上一行 编辑模式: i:在光标所在的位置插

vim 折叠代码技巧汇总

以下命令输入的方式: 如zo命令,先按z键,松开后按o键即可展开折叠. 一.打开.关闭折叠 zo 展开折叠,只展开最外层的折叠. zO 对所在范围内所有嵌套的折叠点展开,包括嵌套折叠. zc 折叠,只折叠最外层的折叠 zC 对所在范围内所有嵌套的折叠点进行折叠,包括嵌套的所有折叠. zm 这将折叠更多 (M-ore).你可以重复 “zr” 和 “zm” 来打开和关闭若干层嵌套的折叠,不然得一个一个的用zc来折叠. 如果你有一个嵌套了好几层深的折叠,你可以用这个命令把它们全部打开: zM 这将增加

vim的常用用法

Vi/Vim 是所有 Unix/Linux 操作系统默认配备的编辑器.因其强大的功能和高效的操作,Vi/Vim 也成为众多 Unix/Linux 用户.管理员必须掌握并熟练使用的编辑工具之一. 我在学习和使用linux的过程中,基本都是使用vim来写程序,用得越多也用得越熟悉,也越发现vim的强大之处,下面我就作些笔记,把最常用的vim命令记一记. 1.vim的启动与切换 vim <filename> 即可打开需要查看的文件,当文件不存在时系统会自动建立新文件: :open file,or  

vim常见基本用法

全屏编辑器(模式化编辑器) 用户往往需要建立自己的文件,无论是一般文本文件.数据文件.数据库文件,还是程序源文件.建立和修改文本文件要利用编辑器.Linux系统常用的文本编辑器,如ed,ex,edit,vi.按照功能分为两类:行编辑器(如:ed,ex,edit)和屏幕编辑器(如:vi).Vi是visual interface的简称.它汇集了行编辑和全屏幕编辑的特点,是UNIX/linux系统常用的编辑器,几乎每个UNIX/linux系统都提供vi. 在linux系统中,还提供vim(vi imp

VIM+ctags+cscope用法

使用vim + cscope/ctags,就能够实现Source Insight的功能,可以很方便地查看分析源代码. 关键词: vim, cscope, ctags, tags 1. 查看vim是否支持cscope $ vim --version | grep cscope 2. 编译支持cscope的VIM(--enable-cscope) # USE="bash-completion cscope nls perl python -acl -gpm -minimal -ruby -vim-p

vim编辑器的用法

vim,visual interface improve,是一个功能强大.高度可定制的文本编辑器.全屏编辑器和模式化编辑器. 一.vim有三种模式:编辑模式(也叫命令模式)是vim默认的模式:插入模式,进行文本修改编辑:末行模式,支持很多文件管理的命令,可在编辑过程中方便地执行文本管理. 二.vim三种模式的转换 编辑--->插入 i/I:在当前光标所有字符的前面/行首,转为插入模式 a/A:在当前光标所有字符的后面/行尾,转为插入模式 o/O:在当前光标所在行的下方/上方,新建一行,并转为插入

vim折叠快捷键

参考:http://www.cnblogs.com/fakis/archive/2011/04/14/2016213.html 1. 折叠方式 可用选项来设定折叠方式: 可在Vim 配置文件中设置 set fdm=XXX 可直接在文件中使用注释调用vim命令 /* vim: set fdm=XXX: */ 有6种方法来选定折叠: 1    manual          手工定义折叠 2    indent           更多的缩进表示更高级别的折叠 3    expr          

vim 折叠技巧

转自:http://www.2cto.com/os/201203/122133.html 主要命令: zf-创建折叠 zf20G--创建折叠,从当前行折叠到第20行 zfgg--创建折叠,从当前位置折叠到文件头,非常适合编程的时候隐藏文件顶部的头文件包含,源文件注释 写程序时都是以函数为单位,可以很方便的折叠一个函数,而保留函数头部.如下函数,我们将光标停留在{处,输入zf%(%在vim中表示括号匹配,此处指匹配到另一个对应的大括号)#include <stdio.h>int main(int