【转】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 ...
随机推荐
- windbg调试相关命令
windbg 查找函数:x exe!main* 条件断点打印字符:bp 7199a2b0 ".printf \"message:%ma\", poi(@esp+8);.e ...
- UVA11987 Almost Union-Find [带权并查集]
洛谷传送门 Almost Union-Find 题目描述 输入输出格式 输入格式: 输出格式: 输入输出样例 输入样例#1: 5 7 1 1 2 2 3 4 1 3 5 3 4 2 4 1 3 4 3 ...
- PHP变量的使用
如果在用到数据时,需要用到多次就声明为变量使用: 变量的声明 $变量名=值 强类型语言中(C,Java),声明变量一定要先指定类型(酒瓶) PHP是弱类型的语言:变量的类型有存储的值决定.(瓶子) 2 ...
- java8新特性——方法引用与构造器引用
上篇文章简单学习了java8内置得4大核心函数式接口,这类接口可以解决我们遇到得大多数得业务场景得问题.今天来简单学习一下方法引用与构造器引用. 一.方法引用 方法引用:若lambda 体中得内容已经 ...
- 【BZOJ 1272】 1272: [BeiJingWc2008]Gate Of Babylon (容斥原理+卢卡斯定理)
1272: [BeiJingWc2008]Gate Of Babylon Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 254 Solved: 12 ...
- 【并查集】BZOJ4668-冷战
[题目大意] 给出N个军工厂和M 个操作,操作分为两类: • 0 u v,这次操作苏联会修建一条连接 u 号军工厂及 v 号军工厂的铁路,注意铁路都是双向的; • 1 u v, Reddington ...
- 课堂实验-Bag
这次的课堂实验比较简单,但尴尬的是竟然没有做出来,自己的代码能力下降了不少.IDEA的Junit测试出了问题.所以这次实验是和结对伙伴结对编程写的. public class Bag<T> ...
- Flask请求上下文源码讲解,简单的群聊单聊web
请求上下文流程图 群聊html代码 <!DOCTYPE html> <html lang="en"> <head> <meta chars ...
- hdu 3340 Rain in ACStar 线段树区间等差数列更新
Rain in ACStar Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.hust.edu.cn/problem/show/1385 ...
- Colorful Lecture Note
Colorful Lecture Note 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 Little Hi is writing an algorithm lectu ...