vim代码折叠功能
- 问题:怎样在vim中实现代码折叠功能?
- 解决方法:直接使用vim自带的快捷键和命令,便可以实现功能强大的折叠
- 小试折叠:
- 1 :set fdm=marker 在vim中执行该命令
- 2 5G 将光标跳转到第5行
- 3 zf10G 折叠第5行到第10行的代码,vim会在折叠的开始和结束自动添加三个连续的花括号作为标记
- 4 zR 打开所有折叠
- 5 zM 关闭所有折叠
- 6 zE 删除所有的折叠标签
- 7 退出vim窗口再次打开,执行2-6步。依然可以折叠,但是没有标记了。重新打开后折叠信息会丢失。
- 折叠方法:
- 1 manual (不常用)默认折叠方法,如上面第7步即为该方法,关闭vim折叠会丢失。如果想保持折叠信息,可运行 :mkview 命令,重启后用 :loadview 命令回复。该命令生成的缓存文件位于 ~/.vim/view 文件夹中。移动或重命名文件,折叠信息依然会丢失。
- 2 indent (常用)缩进折叠方法,相同的缩进中代码会被折叠。
- 3 syntax (不常用)语法高亮折叠,在c/c++中会折叠花括号部分,其它格式代码中有的不能自动折叠。
- 4 marker (常用)标记折叠方法,如上面1-6所使用的方法。关闭vim折叠信息不会丢失,而且易用控制和标注。
- 5 还有两种 diff 和 expr,目前我还没有用过。
- 具体介绍:
- 1 以 marker 为例,可以在vim中运行 :set fdm=marker 来设置折叠方法设置。折叠方法的时候,= 两边不能有空格。也可以将该命令添加到~/.vimrc中,实现vim自动加载。
- 2 在使用小试折叠中 2 3 步折叠的时候,vim会自动添加三个连续的花括号作为标记,可在开始的花括号前添加介绍,花括号后添加级别号,级别号不能为0。如:/*折叠介绍{{{1*/
- /*}}}*/
- 3 级别的定义稍显复杂。在一般编码中,通常把不需要修改的代码添加标记折叠。没有必要在给折叠分等级。如果想快速折叠就切换为indent折叠方面,适用于任何有缩进的代码。
- 折叠命令:
- 1 zf 创建折叠,可以按照前面的方式进行折叠,也可以选中代码后进行折叠。
- 2 zF 在当前行创建折叠。当一开始就计划要折叠所写代码的时候,可以用该命令创建一对折叠符号,然后再往里面填写内容。
- 3 :5,10fo 在vim中运行该命令会在折叠 5-10 行中的代码,可以用其它数字代替之。
- 4 zd 删除光标下的折叠。
- 5 zD 删除光标下的折叠,以及嵌套的折叠。
- 6 zE 删除窗口内的所有折叠。仅当 manual 和 marker 折叠方法下有效。
- 打开和关闭折叠:
- 1 zo 打开光标下的折叠。
- 2 zO 打开光标下的折叠,以及嵌套的折叠。
- 3 zc 关闭光标下的折叠。
- 4 zC 关闭光标下的折叠,以及嵌套的折叠。
- 5 za 当光标在关闭折叠上时,打开之。在打开折叠上时,关闭之。
- 6 zA 和za类似,不过对当前折叠和其嵌套折叠都有效。
- 7 zv 打开当前光标所在折叠,仅打开足够的折叠使光标所在的行不被折叠。
- 8 zr和zm 一层一层打开折叠和一层一层关闭折叠,这两个命令会递减和递增一个叫foldlevel的变量。如果你发现zm和zr不灵了,那有可能是你连续按的zr或zm次数多了,只要多按几次让foldlevel回到正常状态即可。执行以下zR和zM也可直接让foldlevel回到正常状态。
- 9 zR和zM 打开所有折叠,设置foldlevel为最高级别。关闭所有折叠,设置foldlevel为0。
- 在折叠间移动:
- 1 [z 到当前打开折叠的开始。如果已在开始处,移到包含这个折叠的折叠开始处。
- 2 ]z 到当前打开折叠的结束。如果已在结束处,移到包含这个折叠的折叠结束处。
- 3 zj 把光标移动到下一个折叠的开始处。
- 4 zk 把光标移动到前一个折叠的结束处。
- 参考:
- 在vim中运行 :h Folding 命令,查看折叠的帮助文档。
vim代码折叠功能的更多相关文章
- VIM 代码折叠
VIM 代码折叠 VIM代码折叠方式可以用"foldmethod"选项来设置,如: set foldmethod=indent 有6种方式来折叠代码 1. manual //手工定 ...
- 找回Xcode7的代码折叠功能
升级到Xcode7后,会发现代码折叠功能不见了,这是怎么回事? 其实这个功能还在的,用以下的快捷键仍然可以折叠代码.只是不能用鼠标实现折叠了:在Xcode菜单里选择Preference——Text E ...
- vim代码折叠命令
1. 折叠方式 可用选项 'foldmethod' 来设定折叠方式:set fdm=*****. 有 6 种方法来选定折叠: manual 手工定义折叠 ind ...
- Keil 代码折叠功能的使用
使用keil时将某段{......}内的代码折叠起来的方法:
- vim代码折叠命令简短
作者:zhanhailiang 日期:2014-10-18 1. 通过fdm实现代码折叠:set fdm=xxx 有下面6种方式实现折叠: |fold-manual| manual Folds are ...
- vim添加代码折叠功能
用空格或者za命名改变,添加如下到vimrc文件 " Enable folding set foldmethod=indent set foldlevel=99 " Enable ...
- android studio 中类似VS的代码折叠功能Region
1. 打开android studio 2. 选择要折叠的代码 3. 按Ctrl + Alt + T 选择 “region .. end region comments” Group selectio ...
- 测试md代码折叠功能
展开查看 System.out.println("Hello to see U!");
- 【转】vim折叠功能
原文:https://www.yupengsir.com/topic/content?i=140 这个作者的vim系列是高级的用法, 要学习一下. https://blog.easwy.com/arc ...
随机推荐
- poj 3259 Wormholes【spfa判断负环】
Wormholes Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 36729 Accepted: 13444 Descr ...
- hdoj 2094 产生冠军
产生冠军 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- 2013腾讯编程马拉松初赛第一场(3月21日) 湫湫系列故事——减肥记II ----线段树
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4509 虽然制定了减肥食谱,但是湫湫显然克制不住吃货的本能,根本没有按照食谱行动! 于是,结果显而易见… 但 ...
- 洛谷 P1004 方格取数
题目描述 设有N*N的方格图(N<=9),我们将其中的某些方格中填入正整数,而其他的方格中则放 人数字0.如下图所示(见样例): A 0 0 0 0 0 0 0 0 0 0 13 0 0 6 0 ...
- NET设计模式-单例模式(Singleton Pattern)
1. 概述 Singleton Pattren 要求一个类有且仅有一个实例,并且提供一个全局变量.这个创建的对象是独一无二的,在这个单独对象实例中,集中所创建类的所有属性和方法. 在创建一个单例,何时 ...
- xml学习篇(二) ----JSON 和XML对比
在比较JSON和XML之前,我们先来上一堂关于数据格式的简要历史(更准确的说,是关于XML的始祖): 早在1970年,IBM开发了一种叫Generalized Markup Language的标记语言 ...
- uva 10916 Factstone Benchmark(对数函数的活用)
Factstone Benchmark Amtel has announced that it will release a 128-bit computer chip by 2010, a 256- ...
- C# 二进制替换第一弹 byte 数组替换
在做通讯相关的数据操作时常常须要用到 byte[] byte 数组替换操作.比方协义转换相关的 如今提供了几种替换的方法 /// <summary> /// 二进制数据 操作 /// ...
- SqlLite 简明教程
SQL DML 和 DDL 可以把 SQL 分为两个部分:数据操作语言 (DML) 和 数据定义语言 (DDL). 注:"--"双减号为行注释 ...
- (转)高性能I/O模型
本文转自:http://www.cnblogs.com/fanzhidongyzby/p/4098546.html 服务器端编程经常需要构造高性能的IO模型,常见的IO模型有四种: (1)同步阻塞IO ...