tab选项卡

回忆上次

  • 上次有三种批量替换,分别是
    • :windo
    • :bufdo
    • :argdo
    • 执行的{cmd}可以用按顺序增加
  • 分别对应的
    • windows 窗口
    • buffers 缓存文件
    • arguments 参数文件
  • 各有各自的列表、切换、删除增加的方式
  • 以什么开始、结束的模式
    • zs
    • ze
  • 关于 window 窗口容器
    • 我们切得越细
    • 可用的范围越小
    • 总共 80*24 的屏幕资源很快就用完了
  • 我又想多线程访问
  • 又想有足够的屏幕来编辑
  • 那怎么办呢?????
  • 除了window之外还有容器吗?????

tabs选项卡

  • 我们发现用windows的方式瓜分屏幕
  • 很快就有了尽头
  • 因为window之间彼此不覆盖
  • 所以80*24个字符的空间很快被填满
  • 有什么方法建立可覆盖的空间么?
    • 还真有那就是tab选项卡
  •  在terminal中运行vi ooo
  • :tabnew oeasy.txt
    • 新建一个tab选项页
    • tab里面有一个window
    • window里面一个buffer
    • buffer内容是oeasy.txt
  • 可以用:tabs查看当前有几个tab里面分别打开着什么
  • :tabnew h gt
    • 在新的tab选项卡里面查询gt命令
  • :tabnew ./oeasy.java
    • 在新的tab选项卡里面打开当前目录下的oeasy.java
  • :tabnew ~/.vimrc
    • 在新的tab选项卡里面打开~/.vimrc

切换

  • tabs切换
    • :tabnext - 下一个tab - 快捷键gt
    • :tabprevious - 上一个tab - 快捷键gT
    • :tablast - 最后tab
    • :tabfirst - 最初tab
  • :tabclose 关闭当前tab
  • :tabonly 只保留当前的tab

tab中再分window

  • 给第一个tab水平方向分成两个window
    • :split
    • 分别打开o2o3
  • 给第二个tab先水平
    • 再垂直分成三个window
    • :split:vsplit
  • 观察 :tabs

  • 当前 window
    • 就是tab 页 1o3这个window
    • 前面有大于号表明这是当前current窗口window
  • 当然也可以
    • :wa
    • :wqa
    • :qa
    • :qa!

选择

  • 先选择 tab选项卡
    • :tabnext - 下一个tab
    • :tabprevious - 上一个tab
    • :tablast - 最后tab
    • :tabfirst - 最初tab
  • 再选择window窗口
    • ctrl-wk切换到当前窗口上面的窗口
    • ctrl->wj切换到当前窗口下面的窗口
    • ctrl-wh切换到当前窗口左面的窗口
    • ctrl-wl切换到当前窗口右面的窗口
  • 选好了位置之后可以选择 buffer缓存
    • :b1 把当前窗口位置显示 buffer1缓存内容
  • 窗口的隐藏和全屏
    • :hid[e] 可以在当前的 tab选项卡 隐藏当前窗口
    • 隐藏的 window窗口 中 buffer缓存 不保存
    • 除非设置了autowrite
    • :on[ly] 可以在当前的 tab选项卡
    • 全屏显示当前 window窗口
    • 其他的窗口都进入 :hide 状态

跳转到指定的选项卡tab

  • tab1跳转到第1个tab
  • tab2跳转到第2个tab
  • tab3跳转到第3个tab
  • tab5跳转到第5个tab

移动选项卡位置

  • :-tabmove 当前选项卡左移动
  • :+tabmove 当前选项卡右移动
  • :0tabmove 当前选项卡移动到最左边
  • :tabmove 0 当前选项卡移动到最左边
  • 这样的选项卡很方便打开一个帮助
    • :tab help gt

按照选项卡打开文件

  • vim -p file1.js file2.js file3.js
  • 对比原来按照window打开文件
    • vim -o file1.js file2.js file3.js
    • vim -O file1.js file2.js file3.js

  • :tabn:tabp可以切换标签页
  • 更快速的方法是gtgT1gt

容器汇总

  • vim命令打开的参数对应一个列表 - arguments参数列表
    • 列表 - :args
    • 添加 - :arga
    • 删除 - :argd
    • 执行命令 - :argdo
  • 打开的文件缓存对应一个列表 - buffers缓存列表
    • 列表 - :ls
    • 添加 - :e .
    • 切换 - :b1
    • 关闭 - :bd
    • 执行命令 - :bufdo
  • tab选项卡对应一个列表 - tabs选项卡列表
    • 列表 - :tabs
    • 打开 - :tabnew
    • 切换 - gtgT
    • 关闭 - :tabc
    • 执行命令 - :tabdo
  • tab选项卡中的窗口对应一个列表 - windows窗口列表
    • 列表 - :sp:vsp
    • 打开 - ctrl+w后加hjkl
    • 关闭 - :q
    • 执行命令 - :windo

总结

  • 学习了一种新的容器 tabs选项卡
  • tabs选项卡 是多个选项卡tab
    • 可以列两个tab
    • 一个编写文件
    • 一个执行指令
    • 互不影响
  • 每个 tab选项卡 对应多个window
    • 可以开两个 window 对比不同
    • 或者在很长的文档上下对比
    • 新建tab - :tabnew
    • 切换tab - gtgT
    • 指定tab - 1gt 2gt 3gt
    • 关闭tab - :tabc
    • 列表tab - :tabs
  • 除了这些之外还有容器吗?????
  • 下次再说 ????
    [Github地址] (https://github.com/overmind1980/oeasyvim)
    [Gitee地址] (https://gitee.com/overmind1980/oeasyvim)
    [蓝桥实验楼 邀请码FJWYIMGB] (https://www.lanqiao.cn/courses/2840)