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)