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折叠功能
原文:https://www.yupengsir.com/topic/content?i=140 这个作者的vim系列是高级的用法, 要学习一下. https://blog.easwy.com/arc ...
- vim折叠设置(转载)
vim折叠设置(转载) set foldmethod=indent "set default foldmethod"zi 打开关闭折叠"zv 查看此行zm 关闭折叠zM ...
- vim中 set 用法设置
vi set用法from google search一.常用收集如下:(vi set)set autoindent 在插入模式下,对每行按与上行同样的标准进行缩进,与shiftwidth选项结 ...
- Vim折叠模式设置
参考文章:http://www.cnblogs.com/welkinwalker/archive/2011/05/30/2063587.html set foldmethod=indent " ...
- vim 折叠技巧
转自:http://www.2cto.com/os/201203/122133.html 主要命令: zf-创建折叠 zf20G--创建折叠,从当前行折叠到第20行 zfgg--创建折叠,从当前位置折 ...
- vim 的各种用法,很实用哦,都是本人是在工作中学习和总结的
(一)初级个性化配置你的vim 1.vim是什么? vim是Vi IMproved,是编辑器Vi的一个加强版,一个极其强大并符合IT工程师(程序员.运维)习惯的编辑器.如果你是一名职业的SE,那么一定 ...
- vim折叠快捷键
参考:http://www.cnblogs.com/fakis/archive/2011/04/14/2016213.html 1. 折叠方式 可用选项来设定折叠方式: 可在Vim 配置文件中设置 s ...
- 【转】vim 的各种用法,很实用哦,都是本人是在工作中学习和总结的
原文地址https://www.cnblogs.com/lxwphp/p/7738356.html (一)初级个性化配置你的vim 1.vim是什么? vim是Vi IMproved,是编辑器Vi的一 ...
- VIM+ctags+cscope用法
使用vim + cscope/ctags,就能够实现Source Insight的功能,可以很方便地查看分析源代码. 关键词: vim, cscope, ctags, tags 1. 查看vi ...
随机推荐
- PHP核心技术——反射
反射: 反射指在PHP运行状态中,扩展分析PHP程序,导出或提取出关于类.方法.属性.参数等的详细信息,包括注释.这种动态获取信息以及动态调用对象方法的功能称为反射API class person{ ...
- 国密算法--Openssl 实现国密算法(加密和解密)
上一次讲了产生密钥,这次我们讲一下加密解密的实现. 先说一下加密解密的流程,一下这些内容都是从国密局发布的国密标准文档里面摘录出来的.大家可以去国密局的网站上自己下载. 下列符号适用于本部分. A,B ...
- dp算法之有代价的最短路径
题目:有代价的最短路径 题目介绍:如下图所示,现在平面上有N个点,此时N=7,每个点可能和其他点相连,相连的线有一定权值,求出从0点到N-1点的消耗权值的最小值. 分析:用动态规划的思路来解决,每一点 ...
- thinkphp 3.x下的任意文件包含(有条件)分析
漏洞原理 实现自己的模版引擎不当,在模版渲染的情况下存在任意变量覆盖漏洞.. 漏洞详情 漏洞位置1 ThinkPHP/Library/Think/View.class.php 需要修改配置文件 指定T ...
- linux压缩相关
tar命令 tar是打包,即把好多东西放在一个大文件里面,之后再压缩:当然也可以解包 tar的几个参数说明: -c 创建一个新的包 -x 将包里的文件还原出来 -t 显示包内文件的列表 -f 指定要处 ...
- export命令详解
基础命令学习目录首页 export 的基本作用就是将父shell中的局部变量设置为环境变量,使得该变量可以在子shell中使用.下面设置两种情景对export进行原理解析. 情景 1. 有一个名为m ...
- 多种方法实现左右固定,中间自适应的CSS布局
布局是面试中常问的问题,尤其是这类的题目,怎么答才好呢? 大多数人的第一个方法是浮动,没错,浮动.第二个方法呢?你回答定位,没错.第三个方法呢?.... 第四个方法呢?第五个方法呢?.... 其实能想 ...
- poi excel导入 数字自动加小数点
问题:导入excel表,若表格中为整数数字,不管单元格设置成数字格式还是文本格式,导入时都会出现小数点和0. 我遇到的问题是:一个名称,做测试数据的时候做了纯整形数字,发现了这个问题. 解决办法:在代 ...
- 使用robot封装一个模拟键盘复制粘贴并按下回车的方法
/** * 复制数据到剪切板并粘贴出来并按下回车 * @param writeMe 需要粘贴的地址 * @throws java.awt.AWTException */ public void use ...
- 在linux中安装jdk以及tomcat并shell脚本关闭启动的进程
在命令行模式中输入uname -a ,如下图,当界面展示i386就说明本linux系统为32版本,就在官网下载对应jdk版本,或者直接到我的网盘上下载http://pan.baidu.com/s/1c ...