vim折叠快捷键
参考:http://www.cnblogs.com/fakis/archive/2011/04/14/2016213.html
可用选项来设定折叠方式:
可在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 |
启用折叠 |
vim折叠快捷键的更多相关文章
- vim技巧:折叠快捷键
vim技巧:折叠快捷键 以前用的挺熟的,一段时间不用了,快捷键又忘了,不得不重新再看手册,今天专门整理一下,以后查找起来也比较方便. zc 折叠,只折叠最外层的折叠zC 对所在范围内所有嵌套的折叠点进 ...
- vim使用快捷键
vim使用快捷键 索引 1. 关于Vim 1.1 Vim的几种模式 2. 启动Vim 3. 文档操作 4. 光标的移动 4.1 基本移动 4.2 翻屏 4.3 标记 5. 插入文本 5.1 基本插入 ...
- eclipse折叠快捷键
之前按代码折叠快捷键的时候发现时而灵时而不灵,今天突然发现了问题所在: 按ctrl+/(小键盘)使代码左边出现折叠标志 然后再按ctrl+shift+/(折叠) , ctrl+shift+*(展开 ...
- Vim命令快捷键(网摘)
Vim命令快捷键(网摘) 原文出处:[?---->home]
- 一些常用的vim编辑器快捷键:
一些常用的vim编辑器快捷键: h」.「j」.「k」.「l」,分别控制光标左.下.上.右移一格. 按「ctrl」+「b」:屏幕往“后”移动一页. 按「ctrl」+「f」:屏幕往“前”移动一页. 按「c ...
- VIM常用快捷键(转载)
移动光标 h,j,k,l 上,下,左,右 ctrl-e 移动页面 ctrl-f 上翻一页 ctrl-b 下翻一页 ctrl-u 上翻半页 ctrl-d 下翻半页 w 跳到下一个字首,按标点或单词分割 ...
- vim折叠设置(转载)
vim折叠设置(转载) set foldmethod=indent "set default foldmethod"zi 打开关闭折叠"zv 查看此行zm 关闭折叠zM ...
- Mac下Vim编辑快捷键小结(移动光标)
Mac下Vim编辑快捷键小结(移动光标) 1.移动到行尾"$",移动到行首"0"(数字),移动到行首第一个字符处"^" 2.移动到段首&qu ...
- [转贴] VIM 常用快捷键 --一直记不住
vim 常用快捷键 原帖地址: https://www.cnblogs.com/tianyajuanke/archive/2012/04/25/2470002.html 1.vim ~/.vimrc ...
随机推荐
- mysql进阶(五)数据表中带OR的多条件查询
MySQL数据表中带OR的多条件查询 OR关键字可以联合多个条件进行查询.使用OR关键字时: 条件 1) 只要符合这几个查询条件的其中一个条件,这样的记录就会被查询出来. 2) 如果不符合这些查询条件 ...
- Adobe Premiere 基本使用
第一节 Premiere概述 1.1概述 Premiere是Adobe公司出品的一款用于进行影视后期编辑的软件,是数字视频领域普及程度最高的编辑软件之一.对于学生媒体而言,Premiere完全可以 ...
- windows linux—unix 跨平台通信集成控制系统----文件搜索
跨平台的网络通信,跟设备的集成控制,牵扯到在各种平台下的文件搜索问题,windows下面的已经有了. 地址如下: http://blog.csdn.net/wangyaninglm/article/d ...
- Cocos2d-swift V3.x 中的update方法
在cocos2d V3.x中update方法如果实现,则会被自动调用;不用向早期的版本那样要显式schedule. 但是你还是要显式schedule其他方法或blocks使用node的schedule ...
- 基于ARM-contexA9-Linux驱动开发:如何获取板子上独有的ID号
每个CPU,都有它固定的ID号,ID号就是这个CPU唯一的标识,它可能隐含着CPU的生产日期,版本号,型号等等,那么,在我们的这款友善之臂Tiny4412的板子上,我的这个CPU的ID又是多少呢?从我 ...
- "《算法导论》之‘字符串’":字符串匹配
本文主要叙述用于字符串匹配的KMP算法. 阮一峰的博文“字符串匹配的KMP算法"将该算法讲述得非常形象,可参考之. 字符串‘部分匹配值’计算 KMP算法重要的一步在于部分匹配值的计算.模仿& ...
- HBase Bulk Loading
将数据导入到HBase有三种方式:(1) Mapreduce,输出为TableOutputFormat.(2) 用HBase API .(3)Bulk Loading.对于大量的数据入库,第三种数据是 ...
- OpenCV kmeans代码
代码:出处忘了 // // Example 13-1. Using K-means // // /* *************** License:************************* ...
- ZooKeeper 会话超时
1.会话概述 在ZooKeeper中,客户端和服务端建立连接后,会话随之建立,生成一个全局唯一的会话ID(Session ID).服务器和客户端之间维持的是一个长连接,在SESSION_TIMEOUT ...
- The 13th tip of DB Query Analyzer, powerful processing EXCEL file
The 13thtip of DB Query Analyzer, powerful processing EXCEL file MA Genfeng (Guangdong UnitollServic ...