2011-04-04 48 views
1

Using vim's tabs like buffers爲什麼在編程時使用g(vim)中的選項卡?

這不是如何Vim的選項卡 設計使用。事實上,他們的名字是 。一個更好的名字是 「視口」或「佈局」,因爲這是 什麼是標籤 - 這是不同的 現有緩衝區的所有窗口的佈局。

如果VIM每個標籤只是所有現有緩衝區的不同佈局(這樣做:ls每個選項卡中顯示了相同的列表),不是標籤的存在,在vim沒用?如果我可以使用插件來處理諸如minibufexplorer等緩衝區,爲什麼選項卡存在?只有在該選項卡上執行:ls時,不應該至少顯示在選項卡中打開的緩衝區(表現得像是「工作區」功能)?

我認爲有多個選項卡打開不同的文件,但是當試圖在選項卡上執行:bn時,它會轉到所有打開的緩衝區,它變得很混亂。有些人喜歡在開發時爲每個問題的「領域」打開不同的選項卡,但是對我而言,如果可能的話,它會非常有用to have a different buffer list for each tab in Vim。我有很多搜索,並且找不到標籤存在的原因,只有「停止在其他編輯器中使用標籤等Vim中的標籤,而是使用緩衝區」,那麼爲什麼vim中的標籤實現了?這就是爲什麼我不認爲這個問題是重複的)

總結......你對這個主題有什麼感想 - 編程時在Vim中選項卡的用處?你如何使用它?

+1

這是一個主觀的問題,所以你可能不會太遠與它。 – 2011-04-04 00:06:46

回答

2

標籤可分別具有使分組與文件的類似團體工作方便多了自己的工作目錄。

而且,直接從:help tabpage

Tabs are also a nice way to edit a buffer temporarily without changing 
the current window layout. Open a new tab page, do whatever you want 
to do and close the tab page. 
+0

嗯,我聽說過不同工作目錄的可能性,這就是爲什麼我問:因爲每個標籤可以有自己的工作目錄,爲什麼默認情況下他們不能擁有它自己的緩衝區列表?這不是一個設計缺陷嗎? – 2011-04-04 00:42:32

+1

這更像是一個設計決定。如果我不得不猜測,tab最近在vim開發過程中出現的事實(相對)可能會阻礙他們在沒有完全重寫的情況下可能實現的功能。想想有多少命令和事物可以對單個緩衝區列表進行假設。純粹是當然的猜測。 – 2011-04-04 00:51:42

+0

好吧,好點。 「想想有多少命令和事物會對單個緩衝區列表做出假設」。事實上,我對這個設計決定並不知情。 – 2011-04-04 01:10:14

2

我經常使用標籤,並使用它們來對文件進行邏輯分組。

舉例來說,我會在一個選項卡中打開視圖或HTML,在另一個有關聯的控制器和其他有關聯模型。然後我將使用:mksession!保存佈局,稍後使用-S標誌重新加載。

其他時候我會用標籤來保持vim的幫助頁面的一個開放的只是所以它的立即可用。

我認爲最主要的是選項卡,使你組織你的緩衝區以不同的方式比使用分割窗口和靈活性允許VIM與更多的人的大腦的工作,因爲大家都認爲是不同的。

這回答一個相關的問題可能會有所幫助:Using Vim's tabs like buffers

我通常使用的-O標誌分割窗口打開的文件,但如果你堅持在單獨的選項卡中打開它們,你可以使用-p。我更喜歡分割,因爲我可以輕鬆地看到兩個單獨的文件,這是您無法使用選項卡執行的操作。

最後,這裏是我用來使其易於拆分之間移動的一些關鍵DEFS:

" Switch between window splits using big J or K and expand the split to its 
" full size. 
" 
" Move vertically in the window through the horizontal splits... 
map <C-J> <C-w>j<C-w>_ 
map <C-K> <C-w>k<C-w>_ 

" Move horizontally in the window through the vertical splits... 
map <C-H> <C-w>h<C-w>\| 
map <C-L> <C-w>l<C-w>\| 
1

我通常使用標籤時我當前視圖被分割爲多,因爲它可以同時仍然允許我以有效地讀取和編程。大部分時間都在那裏,以便我可以快速訪問該文件的信息(通常包含某種包含文件)。

我很少在實際開發中使用選項卡,而是爲偶爾查看的信息佔位符。

所以normaly我有

TAB0 - >源文件和測試文件
TAB1 - >包括文件,有時相關接口文件

相關問題