原文: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 #避免启动编辑器代码自动折叠

三、参考资料

syntax用法

indent与marker用法

vim折叠设置

【转】vim折叠功能的更多相关文章

  1. vim代码折叠功能

    问题:怎样在vim中实现代码折叠功能? 解决方法:直接使用vim自带的快捷键和命令,便可以实现功能强大的折叠 小试折叠: 1  :set fdm=marker  在vim中执行该命令 2  5G  将 ...

  2. Vim折叠模式设置

    参考文章:http://www.cnblogs.com/welkinwalker/archive/2011/05/30/2063587.html set foldmethod=indent " ...

  3. vim折叠设置(转载)

    vim折叠设置(转载) set foldmethod=indent "set default foldmethod"zi 打开关闭折叠"zv 查看此行zm 关闭折叠zM ...

  4. vim 折叠代码技巧汇总

    以下命令输入的方式: 如zo命令,先按z键,松开后按o键即可展开折叠. 一.打开.关闭折叠 zo 展开折叠,只展开最外层的折叠. zO 对所在范围内所有嵌套的折叠点展开,包括嵌套折叠. zc 折叠,只 ...

  5. 找回Xcode7的代码折叠功能

    升级到Xcode7后,会发现代码折叠功能不见了,这是怎么回事? 其实这个功能还在的,用以下的快捷键仍然可以折叠代码.只是不能用鼠标实现折叠了:在Xcode菜单里选择Preference——Text E ...

  6. vim添加代码折叠功能

    用空格或者za命名改变,添加如下到vimrc文件 " Enable folding set foldmethod=indent set foldlevel=99 " Enable ...

  7. vim 折叠技巧

    转自:http://www.2cto.com/os/201203/122133.html 主要命令: zf-创建折叠 zf20G--创建折叠,从当前行折叠到第20行 zfgg--创建折叠,从当前位置折 ...

  8. vs2015里给c#添加轮廓折叠功能

    轮廓折叠,在看代码时非常有用的功能,可以暂时屏蔽大段不相关的if/else分支 记得以前老版vs里是自带这功能的,c++和c#都有 但不知为啥最新的2015里c#没有了,搜了下原来是要装插件: htt ...

  9. vim折叠快捷键

    参考:http://www.cnblogs.com/fakis/archive/2011/04/14/2016213.html 1. 折叠方式 可用选项来设定折叠方式: 可在Vim 配置文件中设置 s ...

随机推荐

  1. C和指针之学习笔记(6)

    第17章 经典数据结构类型 堆栈 堆栈接口提供三种基本的操作:push.pop 和 top. Push:把一个新值压入到堆栈的顶部. Pop: 只把顶部元素从堆栈中移除,它并不返回这个值. Top: ...

  2. [APIO2015]巴厘岛的雕塑 --- 贪心 + 枚举

    [APIO2015]巴厘岛的雕塑  题目描述 印尼巴厘岛的公路上有许多的雕塑,我们来关注它的一条主干道. 在这条主干道上一共有\(N\)座雕塑,为方便起见,我们把这些雕塑从 1 到\(N\)连续地进行 ...

  3. C#双面打印解决方法(打印word\excel\图片)

    最近需要按顺序打印word.excel.图片,其中有的需要单面打印,有的双面.网上查了很多方法.主要集中在几个方式解决 1.word的print和excel的printout里设置单双面 2.prin ...

  4. Android开发AlertDialog解析

    打开源码,首先映入眼帘的是三个构造方法,但这三个构造方法都是protected类型的, 可见,不允许我们直接实例化AlertDialog. 因此,我们再看别的有没有方法.可以实例化 再仔细一看,发现一 ...

  5. 【洛谷】2990:[USACO10OPEN]牛跳房子Cow Hopscotch【单调队列优化DP】

    P2990 [USACO10OPEN]牛跳房子Cow Hopscotch 题目描述 The cows have reverted to their childhood and are playing ...

  6. Codeforces Round #348 (VK Cup 2016 Round 2, Div. 2 Edition) E. Little Artem and Time Machine 树状数组

    E. Little Artem and Time Machine 题目连接: http://www.codeforces.com/contest/669/problem/E Description L ...

  7. hdu 5210 delete 水题

    Delete Time Limit: 1 Sec  Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=5210 D ...

  8. 提示框框架KVNProgress介绍

    gitHub上面有很多显示加载进度的框架,这里我们介绍一下KVNProgress框架,KVNProgress是一个可以完全定制的HUD(指示器),你可以设置加载进度的画面是否全屏,可以自己修改进度显示 ...

  9. Hiho----微软笔试题《Combination Lock》

    Combination Lock 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 Finally, you come to the interview room. You ...

  10. WinDbg-如何抓取dump文件

    这要分两种情况:第一种情况:如果是Vista或者是Windows2008操作系统就是一个简单的事情,在任务管理器中,切换到"进程"选项卡,右键点击你想要创建dump文件的进程,然后 ...