IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> Vim 代码折叠 -> 正文阅读

[开发工具]Vim 代码折叠

更多分享内容可访问我的个人博客

https://www.niuiic.top/

本文简要介绍一种可能适用于多数人的 vim 代码折叠方案。

需求

简单地说,当不关心的代码量比较大时,寻找想要的代码或者在文件内跳转都会非常吃力,这时把这些不关心的代码折叠起来就成了必要。

方案

首先了解一下 vim 内置的 6 种折叠方案,分别是manual(手动定义折叠)、indent(按缩进折叠)、expr(用表达式定义折叠)、syntax(按语法折叠)、diff(将未修改的折叠)、marker(用标志折叠)。

有一个插件叫 vim-anyfold,可以看作indent方式的增强版,但是文件较大时速度上让人不太能接受,因此弃用。

本方案使用manual作为折叠方式,因为这种方式最为灵活。另外为了获得更好的体验,每次进入文件时应当重现上次的折叠。为此,写入如下配置。

有一个插件叫 FastFold,是给折叠过程减负加速的。原理是限制像 syntax 这种自动生成折叠区域的方法更新折叠区域的时机(比如只在保存文件时更新)。对 manual 方式显然没用。

set nofoldenable
set foldmethod=manual
augroup remember_folds
    autocmd!
    au BufWinLeave ?* mkview 1
    au BufWinEnter ?* silent! loadview 1
augroup END

配置就这么多,快捷键也很简单。在可视模式下用zf创建折叠,然后就可以用za(不对嵌套折叠作用)或者zA(对嵌套折叠作用)切换状态,用zM关闭所有折叠,用zR开启所有折叠,用zd或者zD(同上)删除折叠。

其他需要注意的就一点,就是该模式下创建的折叠区域的标准是首尾两行。也就是说,如果一开始折叠了 2-8 行,现在在中间加了 100 行,那么折叠区域就是 2-108 行。

另外如果要给不同的文件设置不同的折叠方式,可以参考以下配置。

autocmd FileType markdown setlocal foldmethod=manual

总的来说该方案简洁明了易上手,相比其他折叠方式在速度上可能不占优势但胜在灵活。另外形成一定习惯之后,manual 方式的速度相比其他可能只快不慢。比如定义一个类时在填充内部之前先建立一个折叠,对内部的每一个方法同样如此操作。这样比之后再创建折叠需要进行的跳转要简单且快得多。

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-02-05 21:55:19  更:2022-02-05 21:57:23 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 10:18:05-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码