1. 程式人生 > 其它 >vim 從嫌棄到依賴(11)——標籤頁操作

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]: 切換到下一個標籤頁
  • gTtabp[revious]: 切換到上一個標籤頁
  • tabmove {n}: 移動當前標籤頁