vim 從嫌棄到依賴(11)——標籤頁操作
各位小夥伴們,你們好,我又更新了!
之前介紹了vim關於多視窗的操作,vim中多視窗是將多個視窗在一個螢幕中顯示,這似乎與我們常見的ide有點不一樣,一般的ide都是新開一個視窗之後在新的標籤頁中顯示,通過不同的標籤頁對應不同的檔案。我們的瀏覽器就是一個典型的例子。
而vim似乎不是這樣的,vim管理檔案採用的是緩衝區列表的方式,一個緩衝區對應一個顯示視窗,而多個視窗可以顯示在一個螢幕上。而vim中的標籤頁更像是一個容器,用來容納這麼些視窗。它更像是一個虛擬桌面,不管在功能上還是使用習慣上都像是虛擬桌面。(虛擬桌面可是個摸魚的好東西,不過現在有更高階的摸魚方法就是了。 有朝一日我一定要嘗試用vim來摸魚)
除了使用它來摸魚,我們再來想象這麼一個場景:我們在做一個專案,已經打開了需要的程式碼檔案,並且將它們經過了精心的佈局,但是這個時候來了新的任務(以前的老專案出bug了,wtf!),我們不想在精心佈置的視窗中插入這麼一個第三者,總歸心裡有點彆扭。這個時候我們新開一個標籤頁,在這個標籤頁裡開啟原來專案相關的檔案。當我們修復完這個bug之後,直接切回到原來的標籤頁。之前的佈局仍在原地等待著你(這麼一個對你不離不棄的編輯器,多麼令人感動)。
我知道,看了我這麼長的vim教程,很多小夥伴已經頭暈腦脹了,甚至有的可能覺得最近介紹的東西,使用外掛能更好的完成類似的操作,這些操作方式已經過時了。但是vim它提供了原生的操作,總有它的道理。打起精神來吧。
標籤頁
可以使用命令:tabedit {filename}
開啟一個新的標籤頁,如果不加檔名則開啟一個空的標籤頁。我們也可以使用tabnew
命令,引數與效果完全相同。
如果當前標籤頁中包括多個視窗,那麼可以使用<Ctrl+w>T
將當前緩衝區移動到新的標籤頁中。
關閉標籤
可以使用tabc[lose]
或者使用tabo[nly]
來關閉標籤頁,前者是關閉當前標籤頁,後者是關閉所有,只保留當前啟用的標籤頁。
切換標籤頁
在普通模式下使用gt
切換到下一個標籤頁,使用gT
切換到上一個標籤頁,也可以在命令模式中使用:tabn[ext]
和 tabp[revious]
來達到同樣的效果。另外tabnext
gt
前面都是支援新增數字編號的。這樣我們可以方便的跳轉到第幾個標籤頁,這個編號是從1開始的。最後再介紹一個
tabmove {n}
命令,它可以用來移動當前標籤頁到指定位置,後面加數字表示移動到第幾個標籤的位置,不加數字預設移動到結尾位置。當然如果你使用的是圖形版的vim或者終端支援滑鼠操作,也可以使用拖拽的方式完成這一工作。最後總結
關於標籤的操作,基本就這麼多了。其實真要說起來,這些操作比較繁瑣,記起來也麻煩,vim自帶的標籤功能相對比較簡陋,後面我會介紹對應的外掛對其進行擴充,本來我想跳過這部分的內容,畢竟有更好的外掛和更好的操作方式。但是它作為vim提供的一大功能,使用頻率也算比較大,想想還是說一下比較好吧。
最後總結一下提到的一些命令吧:
-
:tabedit {filename}
: 新建標籤頁,並在標籤頁中開啟對應檔案 -
tabnew
: 與tabedit
完全相同 -
<Ctrl+w>T
: 如果當前標籤中有多個子視窗,它會將當前活動子視窗放到新的標籤頁中 -
tabc[lose]
: 關閉當前標籤頁 -
tabo[nly]
: 關閉除當前啟用標籤頁的所有 -
gt
或:tabn[ext]
: 切換到下一個標籤頁 -
gT
或tabp[revious]
: 切換到上一個標籤頁 -
tabmove {n}
: 移動當前標籤頁