【转】vim折叠功能
原文:https://www.yupengsir.com/topic/content?i=140
这个作者的vim系列是高级的用法, 要学习一下。
https://blog.easwy.com/archives/advanced-vim-skills-advanced-move-method/
---------------------------------------------------------------------------------------------
一、简介
vim自带代码折叠功能,会使得我们开发时更简单。在vim中折叠设置:set fdm=xxx(fdm<>foldmethod缩写),可在.vimrc中定义实现永久有效,有manual,indent,marker,diff,syntax,expr等5种模式,此处介绍前三种。
manual:手工定义折叠
indent:按缩进折叠
marker:用标记/*{{{*/ /*}}}*/来定义折叠
diff:比较模式,对没有更改的文本进行折叠
syntax:用语法高亮来定义折叠
expr:用表达式进行折叠
二、使用
1、manual模式:set fdm=manual
说明:此模式下的折叠功能只能依靠人工创建折叠范围区,在此基础上对折叠区进行开启、关闭、删除和移动等操作。
zf:创建折叠区
vj/vk/vG/vgg选中区域后执行zf
zfnj:从当前行开始向下到n行折叠
zfnk:从当前行开始向上到n行折叠
zfgg:从当前行到第一行折叠
zfG:从当前行到最后一行折叠
zfngg:从当前行到第n行折叠
zfap:按段落折叠
zfa(:折叠括号包围的区域(如:()、[]、{}、><等)
开启
za:开启/关闭当前折叠区,任何时候有效
zi:开启/关闭所有级折叠区,仅对对自己开启的折叠区有效
zv/zo:打开当前折叠区
zO:打开当前所有级折叠区
zr:打开同一级折叠区
zR:递归打开所有折叠区
关闭
zm:关闭同一级折叠区
zM:关闭所有级折叠区
zc:关闭当前折叠区
zC:关闭选取范围内所有级折叠区
zn:禁用折叠
zN:启用折叠
删除
zd:删除当前折叠区
zD:删除当前所有级折叠区
zE:删除窗口内所有折叠区
移动
zj:向下一个折叠点移动
zk:向上一个折叠点移动
[z:移动到打开后的折叠区的开始处
]z:移动到打开后的折叠区的结束处
注意
vim不会自动记忆手工折叠点需要如下命令进行保存/读取
:mkview 进行保存
:loadview 进行读取
2、indent模式:set fdm=indent
说明:此模式下的折叠功能依据缩进自动进行,zf在此模式中无效,在此基础上对折叠区进行开启、关闭和移动等操作与手动模式的一致。
:set foldlevel=1 #指定级别折叠缩进
:set foldlevelstart=99 #避免启动编辑器代码自动折叠
3、marker模式:set fdm=marker
说明:此模式默认按{{{ }}}标志作为缩进依据,zf会自动生成该标志,在此基础上对折叠区进行开启、关闭、删除和移动等操作与手动模式的一致。
:set foldlevelstart=99 #避免启动编辑器代码自动折叠
三、参考资料
【转】vim折叠功能的更多相关文章
- vim代码折叠功能
问题:怎样在vim中实现代码折叠功能? 解决方法:直接使用vim自带的快捷键和命令,便可以实现功能强大的折叠 小试折叠: 1 :set fdm=marker 在vim中执行该命令 2 5G 将 ...
- Vim折叠模式设置
参考文章:http://www.cnblogs.com/welkinwalker/archive/2011/05/30/2063587.html set foldmethod=indent " ...
- vim折叠设置(转载)
vim折叠设置(转载) set foldmethod=indent "set default foldmethod"zi 打开关闭折叠"zv 查看此行zm 关闭折叠zM ...
- vim 折叠代码技巧汇总
以下命令输入的方式: 如zo命令,先按z键,松开后按o键即可展开折叠. 一.打开.关闭折叠 zo 展开折叠,只展开最外层的折叠. zO 对所在范围内所有嵌套的折叠点展开,包括嵌套折叠. zc 折叠,只 ...
- 找回Xcode7的代码折叠功能
升级到Xcode7后,会发现代码折叠功能不见了,这是怎么回事? 其实这个功能还在的,用以下的快捷键仍然可以折叠代码.只是不能用鼠标实现折叠了:在Xcode菜单里选择Preference——Text E ...
- vim添加代码折叠功能
用空格或者za命名改变,添加如下到vimrc文件 " Enable folding set foldmethod=indent set foldlevel=99 " Enable ...
- vim 折叠技巧
转自:http://www.2cto.com/os/201203/122133.html 主要命令: zf-创建折叠 zf20G--创建折叠,从当前行折叠到第20行 zfgg--创建折叠,从当前位置折 ...
- vs2015里给c#添加轮廓折叠功能
轮廓折叠,在看代码时非常有用的功能,可以暂时屏蔽大段不相关的if/else分支 记得以前老版vs里是自带这功能的,c++和c#都有 但不知为啥最新的2015里c#没有了,搜了下原来是要装插件: htt ...
- vim折叠快捷键
参考:http://www.cnblogs.com/fakis/archive/2011/04/14/2016213.html 1. 折叠方式 可用选项来设定折叠方式: 可在Vim 配置文件中设置 s ...
随机推荐
- fastadmin iframe 表单提交之后跳转
controller 对应的那个js文件中添加: define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function($, und ...
- Sharepoint 2010 TimerJob重复
昨天被TimerJob困扰了一天.原因就是TimerJob当中会有一个Httpwebrequest GET请求一个Application Page进行一些操作(其中有一个操作是发送邮件).但是发现随机 ...
- Java synchronized的原理解析
开始 类有一个特性叫封装,如果一个类,所有的field都是private的,而且没有任何的method,那么这个类就像是四面围墙+天罗地网,没有门.看起来就是一个封闭的箱子,外面的进不来,里面的出不去 ...
- 【BZOJ 3482】 3482: [COCI2013]hiperprostor (dij+凸包)
3482: [COCI2013]hiperprostor Time Limit: 20 Sec Memory Limit: 256 MBSubmit: 277 Solved: 81 Descrip ...
- [CodeForces-708E]Student's Camp
题目大意: 一个n*m的墙,被吹k天风,每块靠边的砖都有p的概率被吹掉. 如果上下两行没有直接相连的地方,我们则认为这一堵墙已经倒塌. 问最后墙不倒塌的概率(模意义). 思路: 动态规划. 用f[i] ...
- codeforces 85D D. Sum of Medians Vector的妙用
D. Sum of Medians Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/problemset/prob ...
- c++的atoi和stoi一些区别
c++的atoi和stoi一些区别 对c++标准库中字符串转化为int的两个函数atoi()和stoi()两个有所混乱,特地研究了一下. stoi() 标准库的函数默认模板 int stoi (con ...
- 将多层级xml解析为Map
/** * 解析xml的工具类 * 1.将多层级xml解析为Map */ public class ParseXmlUtil { public static final String TAG = &q ...
- Ehcache缓存时间设置
timeToLiveSeconds和timeToIdleSecondstimeToLiveSeconds=x:缓存自创建日期起至失效时的间隔时间x:timeToIdleSeconds=y:缓存创建以后 ...
- SQL Server2008无法修改表结构?
之前一直用SQL Server2005的数据库,最近升级到2008之后发现修改不了表结构,提示: 根据提示,取消“阻止保存要求重新创建表的更改”后就可以了. 具体操作:SQL Server Manag ...