oeasy教您玩转vim - 69 - # 折叠folding入门
折叠入门
回忆上次
- 上次学习了一种新的容器
tabs选项卡 tabs选项卡 包含多个选项卡tab- 可以列两个
tab - 一个编写文件
- 一个执行指令
- 互不影响
- 可以列两个
每个
tab选项卡 还可以对应多个window- 可以开两个
window对比不同 - 或者在很长的文档上下对比
- 新建
tab-:tabnew - 切换
tab- gt、gT - 指定
tab-1gt2gt3gt - 关闭
tab-:tabc - 列表
tab-:tabs
- 可以开两个
- 除了这些之外还有别的容器吗?
- 还是有的!
折叠folding
- 这次的容器不在
buffer缓存 之外 - 而在
buffer缓存 内部 - 是折叠文字
- 怎么折叠呢?

- 好比说我们这里有个
css文件 - 在
http://github.com/overmind1980/oeasyvim.git里面 - 找到
oeasy.css
创建折叠

zf6G- 报错了

:h E350
E350

:set foldmethod?:h foldmethod

手动模式
把折叠模式设置为manual
:set foldmethod=manual
我们的
folding折叠都和字母z相关- 因为
z就像一摞纸张打包之后的样子 zf就是打包foldzf后面可以加motion
- 因为
zf4G- 从光标位置到第4行
- 打一个包
- 然后我们就可以看到这几行变成了一行
- 真的发生了折叠!

开关折叠
- 我们可以把光标放到折叠之后的那一行
zo可以打开折叠- 第一个
z是折叠 - 第二个
o是open打开
- 第一个
zc可以关闭- 第一个
z是折叠 - 第二个
c是close关闭
- 第一个
这两个是折叠最常用的命令
- 打开
- 关闭
折叠树
我们可以设置左侧折叠树
foldcolumn:set foldcolumn=4就在最左边有4列专门负责打开和关闭折叠的显示
- +是关闭
- -是打开
可以反复横跳来玩
- 只要有+、-的地方就可以zc、zo
多重折叠
- 可以折叠带有折叠的行
- 也就是折叠的嵌套
- 折叠多了容易乱
- 我们要手动删除折叠

取消和再次折叠

删除折叠的快捷键是
zd- 顾名思义
-z是折叠 d是删除
- 顾名思义
- 来试试
在左侧
foldcolumn是+的地方- 使用命令zd删除当前光标位置对应的折叠
如果折叠是嵌套的
- 先删除内层的折叠
zD是递归地删除折叠- 可以把当前光标的递归折叠都删除

如果折叠都被删没有了
- 可以先
zf2j创建一些折叠
- 可以先
- 好,我们把所有的折叠都删干净了
- 然后我们试试创建折叠更好的方法
利用{}创建折叠
zf是创建折叠zf2j中的2j是motion- 可以在{}内使用
zfa{创建当前标记的折叠 - 可用
zfi{创建折叠 - 效果如下图
- 试一下

- 能不能一把打开所有的折叠呢?
折叠层次
- 有这样一个属性叫做
foldlevel - 折叠层次
- 到底怎么用呢?
:set foldlevel=0- 折叠都关了
:set foldlevel=1- 折叠都开了
- 还是挺方便的
不过每个大括号都要自己创造折叠
- 是否能够自动创建折叠呢?

缩进折叠
- 首先我们退出当前这个文件
- 然后重新打开
打开之后先观察当前的折叠模式
:set foldmethod?
如果是manual
:set foldmethod=indent- 把他强制设置为缩进折叠
- 可以把这句话写进
~/.vimrc这样每次都是缩进折叠了 - 我觉得缩进折叠还是很方便的
:set foldcolumn=4- 出现折叠树
:set foldlevel=0- 全部隐藏
:set foldlevel=1- 全部打开
indent折叠要求缩进必须严格符合要求
gg=G可以帮助你控制缩进
总结
- 这次我们讲的是折叠
折叠有很多options
foldlevel- 显示折叠层次foldcolumn- 折叠树宽度foldmethod- 折叠方式manual- 手动indent- 缩进
折叠的定义
zf2j- 当前行和下面两行建立折叠
zfa{- 用大括号(包含)建立折叠
zfi{- 用大括号(不包含)建立折叠
折叠的删除
zd
折叠的打开和关闭
zoopenzcclose:set foldlevel=1设置折叠层次
- 这个缩进折叠可以对于程序文件使用么?
- 下次再说!
[Github地址] (GitHub - overmind1980/oeasyvim: 这是oeasy制作的的一套关于vim的教程 可以在 https://www.lanqiao.cn/teacher/courses/2840 做实验 邀请码FJWYIMGB 本教程从0基础开始,到精通vim配置,和高级命令。希望能让vim是你的开发更高效。)
[Gitee地址] (overmind1980/oeasyvim)
[蓝桥实验楼 邀请码FJWYIMGB] (oeasy 教您零基础玩转编辑神器 vim_Linux - 蓝桥云课)
oeasy教您玩转vim - 69 - # 折叠folding入门的更多相关文章
- oeasy教您玩转vim - 56 - # 字符可视化模式
可视化编辑 回忆上节课内容 我们学习了关于模式匹配中使用参数 单个参数 :%s/<h2>\(.*\)</h2>/ - \1/g 多个参数 :%s/<img src=\ ...
- oeasy教您玩转vim - 57 - # 行可视化
可视化编辑 回忆上节课内容 上次我们了解到可视模式 其实可视化对应三种子模式 字符可视模式 v 行可视模式 大写V 块可视模式ctrl+v 我们先来了解字符可视化模式 快捷键 v 可配合各种mot ...
- oeasy教您玩转vim - 53 - # 批量替换
查找细节 回忆上节课内容 我们温习了关于搜索的相关内容 /正向,?反向 n保持方向,N改变方向 可以设置 是否忽略大写小写 是否从头开始查找 是否高亮显示 还有一些正则表达式的使用方法 行头行尾 ^$ ...
- oeasy教您玩转linux010203显示logo
我们来回顾一下 上一部分我们都讲了什么?
- oeasy 教您玩转linux010101查看内核uname
linux([?l?n?ks]) 是什么????? 咱们这次讲点什么呢?这次咱们讲讲这个 linux([?l?n?ks]),什么是 linux([?l?n?ks])呢?这linux([?l?n?ks] ...
- oeasy教您玩转linux010202软件包管理apt
顾一下 上一部分我们都讲了什么?
- oeasy教您玩转linux010201持续输出yes
我们来回顾一下 上一部分我们都讲了什么?
- oeasy教您玩转linux010108到底哪个which
到底哪个which 回忆上次内容 我们上次讲了查找命令位置whereis 我想找到whereis的位置怎么办?
- oeasy教您玩转python - 006 - # hello world
Hello World! 回忆上次内容 python3 的程序是一个 5.3M 的可执行文件 python3 里面全都是 cpu 指令 可以执行的那种指令 我们可以把指令对应的汇编找到 objdu ...
- oeasy教您玩转linux-010110内容回顾
我们来回顾一下 我们都讲了什么?
随机推荐
- WordPress网站被黑怎么办?【含解决方案】
在我们的日常WordPress主题售后工作中,经常会有用户反馈网站出现问题,例如:阿里云提示后门木马文件:打开后跳转到其他地址:页面出现乱码:被添加了其他内容等,根据我们的经验,这种一般都是网站被黑导 ...
- ASP.NET Core环境Web Audio API+SingalR+微软语音服务实现web实时语音识别
处于项目需要,我研究了一下web端的语音识别实现.目前市场上语音服务已经非常成熟了,国内的科大讯飞或是国外的微软在这块都可以提供足够优质的服务,对于我们工程应用来说只需要花钱调用接口就行了,难点在于整 ...
- LOTO示波器软件新增导览功能
新版本的大部分型号LOTO示波器的上位机软件我们改成了导航工具条方式.原来的方式是把所有功能都显示在不同的标签页中,这样的优点是非常快捷方便,基本上用鼠标一两次点击就能直达想要的功能设置.但是缺点是不 ...
- conda错误 创建新环境conda create -n TF117 python=3.5时报错 An unexpected error has occurred. Conda has prepared the above report.
创建新环境conda create -n TF117 python=3.5时报错 An unexpected error has occurred. Conda has prepared the ab ...
- fabric compose文件解读(peer篇)
peer是fabric中的基础单元,主要负责背书,验证交易合法性,保存区块链数据,查询数据.peer与orderer配合完成区块链的全部功能,orderer可以比作是管理员,peer属于是干货的员工, ...
- 异构数据源同步之数据同步 → DataX 使用细节
开心一刻 中午我妈微信给我消息 妈:儿子啊,妈电话欠费了,能帮妈充个话费吗 我:妈,我知道了,我帮你充 当我帮我妈把话费充好,正准备回微信的时候,我妈微信给我发消息了 妈:等会儿子,不用充了,刚刚有个 ...
- jquery的全局函数 多库并存
// jQuery的全局函数 , 也称钩子函数 // 所谓的钩子函数 是 与 其他函数绑定的函数 // 作用是 监听 函数的执行 当函数执行到某个状态时 ...
- Go变量作用域精讲及代码实战
关注作者,复旦AI博士,分享AI领域与云服务领域全维度开发技术.拥有10+年互联网服务架构.AI产品研发经验.团队管理经验,同济本复旦硕博,复旦机器人智能实验室成员,国家级大学生赛事评审专家,发表多篇 ...
- OAuth + Security - 7 - 异常翻译
认证异常翻译 默认情况下,当我们在获取令牌时输入错误的用户名或密码,系统返回如下格式响应: { "error": "invalid_grant", " ...
- jenkins发布服务失败查看catalina.out启动日志和xxl-job jobhandler naming conflicts
jenkins发布服务失败查看catalina.out启动日志和xxl-job jobhandler naming conflicts 1.查看tomcat/logs/catalina.out 日志, ...