show | version | enable_checker |
---|---|---|
step |
1.0 |
true |
- 上次学习了一种新的容器
tabs
选项卡 tabs
选项卡 包含多个选项卡tab
- 可以列两个
tab
- 一个编写文件
- 一个执行指令
- 互不影响
- 可以列两个
- 每个
tab
选项卡 还可以对应多个window
- 可以开两个
window
对比不同 - 或者在很长的文档上下对比
- 新建
tab
-:tabnew
- 切换
tab
- gt、gT - 指定
tab
-1gt
2gt
3gt
- 关闭
tab
-:tabc
- 列表
tab
-:tabs
- 可以开两个
- 除了这些之外还有别的容器吗?🤔
- 还是有的!
- 这次的容器不在
buffer
缓存 之外 - 而在
buffer
缓存 内部 - 是折叠文字
- 怎么折叠呢?
- 好比说我们这里有个
css
文件 - 在
http://github.com/overmind1980/oeasyvim.git
里面 - 找到
oeasy.css
zf6G
- 报错了
:h E350
:set foldmethod?
:h foldmethod
- 把折叠模式设置为manual
:set foldmethod=manual
- 我们的
folding
折叠都和字母z相关- 因为
z
就像一摞纸张打包之后的样子 zf
就是打包fold
zf
后面可以加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
可以帮助你控制缩进
- 这次我们讲的是折叠
- 这是vim6.0时候提供的功能
- 目的是把细节忽略
- 只显示文档的主干
- 折叠有很多options
foldlevel
- 显示折叠层次foldcolumn
- 折叠树宽度foldmethod
- 折叠方式manual
- 手动indent
- 缩进
- 折叠的定义
zf2j
- 当前行和下面两行建立折叠
zfa{
- 用大括号(包含)建立折叠
zfi{
- 用大括号(不包含)建立折叠
- 折叠的删除
zd
- 折叠的打开和关闭
zo
openzc
close:set foldlevel=1
设置折叠层次
- 这个缩进折叠可以对于程序文件使用么?🤔
- 下次再说!