Linux——VIM中代码的折叠和打开
文章转自:http://liufabin66688.blog.163.com/blog/static/13968548200810140486304/
在查看代码的时候,如果代码十分冗长,尤其是c/c++系列的时候,
代码结构比较让人难以理清,主要是各种注释、括号的匹配问题,
虽然可以用%来查看匹配的另外一半符号在哪里,但是如果这一对符号之间的代码超过了一页,甚至好几页的话,那么也是比较难以理解的。
于是可以使用这个vim所提供的折叠功能来简化这些分析。
我使用的vim是rh9自带的版本。
折叠的方式:
vim 提供 6中折叠方式
方式 | 作用 |
---|---|
manual | 手工定义折叠 |
indent | 更多的缩进表示更高级别的折叠 |
expr | 用表达式来定义折叠 |
syntax | 用语法高亮来定义折叠 |
diff | 对没有更改的文本进行折叠 |
marker | 对文中的标志折叠 |
可用选项 ‘foldmethod’ 来设定折叠方式:set fdm=*。
注意,每一种折叠方式不兼容,即:你不能用expr又用marker方式。
目前我一般使用的都是indent 比较多。
使用时,用:**set fdm=indent 命令来设置成marker折叠方式。
在.vimrc文件中添加设置,可以使得每次打开vi 都启动折叠方式。如添加:set fdm=syntax。**
折叠打开与折合
选取了折叠方式后,我们就可以对某些代码实施我们需要的折叠了。
如果使用了indent方式,vim会自动的对大括号的中间部分进行折叠,我们可以直接使用这些现成的折叠成果。
indent 对应的折叠代码有:
方式 | 功能 |
---|---|
zc | 折叠 |
zC | 对所在范围内所有嵌套的折叠点进行折叠 |
zo | 展开折叠 |
zO | 对所在范围内所有嵌套的折叠点展开 |
[z | 到当前打开的折叠的开始处。 |
]z | 到当前打开的折叠的末尾处。 |
zj | 向下移动。到达下一个折叠的开始处。关闭的折叠也被计入。 |
zk | 向上移动到前一折叠的结束处。关闭的折叠也被计入。 |
使用时在大括号中间输入以上命令。
当使用marker方式时,需要用标计来标识代码的折叠,系统默认是{{{和}}},最好不要改动之:)
可以使用下面的命令来创建和删除折叠:
方式 | 功能 |
---|---|
zf | 创建折叠,比如在marker方式下:zf56G,创建从当前行起到56行的代码折叠;10zf或10zf+或zf10↓,创建从当前行起到后10行的代码折叠。10zf-或zf10↑,创建从当前行起到之前10行的代码折叠。在括号处zf%,创建从当前行起到对应的匹配的括号上去((),{},[],等)。 |
zd | 删除 (delete) 在光标下的折叠。仅当 ‘foldmethod’ 设为 “manual” 或 “marker” 时有效。 |
zD | 循环删除 (Delete) 光标下的折叠,即嵌套删除折叠。仅当 ‘foldmethod’ 设为 “manual” 或 “marker” 时有效。 |
zE | 除去 (Eliminate) 窗口里“所有”的折叠。仅当 ‘foldmethod’ 设为 “manual” 或 “marker” 时有效。 |
Linux——VIM中代码的折叠和打开相关推荐
- vim 中代码的折叠和打开
文章转载自:http://liufabin66688.blog.163.com/blog/static/13968548200810140486304/ 仅用于个人学习备查收藏. 在查看代码的时候,如 ...
- [VIM]VIM/GVIM中代码的折叠和打开
VIM/GVIM中代码的折叠和打开 前言:在查看代码的时候,如果代码十分冗长,尤其是c/c++系列的时候,代码结构比较让人难以理清,主要是各种注释.括号的匹配问题,虽然可以用%来查看匹 ...
- Vim中代码格式化实现
Vim中实现格式化代码其实就是缩进,对字符间空格不会产生任何影响. 缩进的类型有多种, 都是用等号命令: = 全部格式化 : gg=G 对当前行格式化(缩进): == 对以下多行格式化(倍数操作): ...
- Linux vim中使用计算器
- vim中异常:“E212: 无法打开并写入文件”解决办法
在保存编辑内容时,输入 :wq!~file.conf
- Linux中 vim 实现代码补全
Linux中 vim 实现代码补全 vim 中代码补全 步骤1:判断 步骤2:安装 `OmniCppComplete` 步骤3: 步骤4:些许其他操作 结果 利用 Tab 键进行补全 vim 中代码补 ...
- linux vim命令_提升生产力的20大Linux Vim命令
linux vim命令 VIM or the Vi Improved text editor is one of the most advanced text editors available. L ...
- 如下为利用Linux内核链表创建,Linux内核中链表的实现与应用
链表(循环双向链表)是Linux内核中最简单.最常用的一种数据结构. 1.链表的定义 struct list_head { struct list_head *next, *prev; } 这个不含数 ...
- vi/vim使用进阶: 在VIM中使用GDB调试 – 使用vimgdb
vi/vim使用进阶: 在VIM中使用GDB调试 – 使用vimgdb Easwy 添加评论 << 返回vim使用进阶: 目录 本节所用命令的帮助入口: :help vimgdb 在UNI ...
最新文章
- MySQL数据库开发理念_mysql之数据库基本理念
- 如何帮助谷歌鉴别内容重复的网页
- 工业用微型计算机(22)-指令系统(18)
- wxWidgets:wxPickerBase类用法
- 第10章 例题 7-3 递归实现逆序输出整数
- css sprite讲解与使用实例
- 浅析 EF Core 5 中的 DbContextFactory
- React Native项目自动化打包发布
- Django使用python-docx-template,并根据模板来生成有数据的word文档
- oracle强制走索引_实验验证:Oracle聚簇因子对索引使用的影响
- 使用pyinstaller打包python程序时问题记录
- mysql自主增长键_mysql中关于自增长主键的获取
- Flask开发系列之初体验
- Softmax Function
- 什么是3D打印?游戏建模具体怎么做?哪个更有发展
- autosar 与osek 的nm
- LayUI使用distpicker.js插件实现三级联动
- 如何用计算机名查看共享打印机,如何查找网络共享打印机
- 51单片机LED流水灯、走马灯的实现
- Kanzi学习之路(7):kanzi的资源预加载
热门文章
- TensorFlow实现卷积、池化操作
- 迅雷下载的都是download.php,CMS_dedecms 下载地址加迅雷专用链的操作方法 比较全,特别注意!!!!!!!!! - phpStudy...
- 暴露的全局方法_面试刷题36:线程池的原理和使用方法?
- fastadmin token 验证错误_用签名保护你的隐私(4)--token生成
- 子恩域名授权系统2.0全解
- wpf 怎样判断是否选中 checkbox_怎样判断自己的肌肤是否缺水?
- 织梦dedecms内核自适应移动POS机刷卡机招商加盟企业网站源码
- 外星人装深度linux,外星人alienware 18笔记本怎么安装win10系统
- 小程序 | 保存图片时处理名称的细节(时间戳+后缀名)
- 移动端真机调试,手机端调试,移动端调试