欢迎光临散文网 会员登陆 & 注册

oeasy教您玩转vim - 69 - # 折叠folding入门

2021-11-24 08:30 作者:oeasy  | 我要投稿

折叠入门

回忆上次

  • 上次学习了一种新的容器 tabs选项卡

  • tabs选项卡 包含多个选项卡tab

    • 可以列两个tab

    • 一个编写文件

    • 一个执行指令

    • 互不影响

  • 每个 tab选项卡 还可以对应多个window

    • 可以开两个 window 对比不同

    • 或者在很长的文档上下对比

    • 新建tab - :tabnew

    • 切换tab -gt、gT

    • 指定tab - 1gt 2gt 3gt

    • 关闭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 就是打包 fold

    • zf 后面可以加 motion

  • zf4G

    • 从光标位置到第4行

    • 打一个包

    • 然后我们就可以看到这几行变成了一行

  • 真的发生了折叠! 😝

开关折叠

  • 我们可以把光标放到折叠之后的那一行

  • zo 可以打开折叠

    • 第一个z 是折叠

    • 第二个o  是 open打开

  • zc 可以关闭

    • 第一个z 是折叠

    • 第二个cclose关闭

  • 这两个是折叠最常用的命令

    • 打开

    • 关闭

折叠树

  • 我们可以设置左侧折叠树foldcolumn

    • 只要有+、-的地方就可以zc、zo

    • 可以反复横跳来玩

    • +是关闭

    • -是打开

    • :set foldcolumn=4

    • 就在最左边有4列专门负责打开和关闭折叠的显示

  • 多重折叠

    • 可以折叠带有折叠的行

    • 也就是折叠的嵌套

  • 折叠多了容易乱

  • 我们要手动删除折叠

取消和再次折叠

  • 删除折叠的快捷键是 zd

    • 顾名思义
       - z 是折叠

    • d 是删除

  • 来试试

  • 在左侧foldcolumn+的地方

    • 使用命令zd删除当前光标位置对应的折叠

  • 如果折叠是嵌套的

    • 先删除内层的折叠

  • zD 是递归地删除折叠

    • 可以把当前光标的递归折叠都删除

  • 如果折叠都被删没有了

    • 可以先 zf2j 创建一些折叠

  • 好,我们把所有的折叠都删干净了

  • 然后我们试试创建折叠更好的方法

利用{}创建折叠

  • zf是创建折叠

  • zf2j中的2jmotion

  • 可以在{}内使用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

    • manual - 手动

    • indent - 缩进

    • foldlevel - 显示折叠层次

    • foldcolumn - 折叠树宽度

    • foldmethod - 折叠方式

  • 折叠的定义

    • 用大括号(不包含)建立折叠

    • 用大括号(包含)建立折叠

    • 当前行和下面两行建立折叠

    • zf2j

    • zfa{

    • zfi{

  • 折叠的删除

    • zd

  • 折叠的打开和关闭

    • zo open

    • zc close

    • :set foldlevel=1 设置折叠层次

  • 这个缩进折叠可以对于程序文件使用么?🤔

  • 下次再说!

[Github地址] (https://github.com/overmind1980/oeasyvim)
[Gitee地址] (https://gitee.com/overmind1980/oeasyvim)
[蓝桥实验楼 邀请码FJWYIMGB] (https://www.lanqiao.cn/courses/2840)


oeasy教您玩转vim - 69 - # 折叠folding入门的评论 (共 条)

分享到微博请遵守国家法律