乐趣区

关于vim:oeasy教您玩转vim-69-折叠folding入门

折叠入门

回顾上次

  • 上次学习了一种新的容器 tabs选项卡
  • tabs选项卡 蕴含多个选项卡tab

    • 能够列两个tab
    • 一个编写文件
    • 一个执行指令
    • 互不影响
  • 每个 tab选项卡 还能够对应多个window

    • 能够开两个 window 比照不同
    • 或者在很长的文档高低比照
    • 新建tab:tabnew
    • 切换tabgtgT
    • 指定tab1gt 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 是折叠
    • 第二个 oopen 关上
  • zc 能够敞开

    • 第一个z 是折叠
    • 第二个 cclose 敞开
  • 这两个是折叠最罕用的命令

    • 关上
    • 敞开

折叠树

  • 咱们能够设置左侧折叠树foldcolumn

    • :set foldcolumn=4
    • 就在最右边有 4 列专门负责关上和敞开折叠的显示

      • + 是敞开
      • - 是关上
    • 能够重复横跳来玩

      • 只有有 +、- 的中央就能够 zc、zo
  • 多重折叠

    • 能够折叠带有折叠的行
    • 也就是折叠的嵌套
  • 折叠多了容易乱
  • 咱们要手动删除折叠

勾销和再次折叠

  • 删除折叠的快捷键是 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

    • foldlevel – 显示折叠档次
    • foldcolumn – 折叠树宽度
    • foldmethod – 折叠形式

      • manual – 手动
      • indent – 缩进
  • 折叠的定义

    • zf2j

      • 以后行和上面两行建设折叠
    • zfa{

      • 用大括号 (蕴含) 建设折叠
    • zfi{

      • 用大括号 (不蕴含) 建设折叠
  • 折叠的删除

    • zd
  • 折叠的关上和敞开

    • zo open
    • zc close
    • :set foldlevel=1 设置折叠档次
  • 这个缩进折叠能够对于程序文件应用么?🤔
  • 下次再说!

[Github 地址] (https://github.com/overmind19…)
[Gitee 地址] (https://gitee.com/overmind198…)
[蓝桥实验楼 邀请码 FJWYIMGB] (https://www.lanqiao.cn/course…)

退出移动版