參見:h setting-tabline
Th e'tabline'選項允許您定義標籤頁 標籤的首選方式。這並不容易,因此這裏給出一個例子。
有關基本信息,請參閱'statusline'選項。可以在 'tabline'選項中使用相同的項目。此外,| tabpagebuflist()|,| tabpagenr()|和 | tabpagewinnr()|功能很有用。
由於選項卡標籤的數量會有所不同,因此您需要使用整個選項的表達式來表示 。例如:
:set tabline=%!MyTabLine()
然後定義MyTabLine()函數以列出所有標籤頁標籤。 A 方便的方法是將其分爲兩部分:首先瀏覽所有選項卡 頁面併爲它們定義標籤。然後獲取每個標籤頁的標籤。
function MyTabLine()
let s = ''
for i in range(tabpagenr('$'))
" select the highlighting
if i + 1 == tabpagenr()
let s .= '%#TabLineSel#'
else
let s .= '%#TabLine#'
endif
" set the tab page number (for mouse clicks)
let s .= '%' . (i + 1) . 'T'
" the label is made by MyTabLabel()
let s .= ' %{MyTabLabel(' . (i + 1) . ')} '
endfor
" after the last tab fill with TabLineFill and reset tab page nr
let s .= '%#TabLineFill#%T'
" right-align the label to close the current tab page
if tabpagenr('$') > 1
let s .= '%=%#TabLine#%999Xclose'
endif
return s
endfunction
現在爲每個標籤頁調用MyTabLabel()函數來獲取其標籤。 >
function MyTabLabel(n)
let buflist = tabpagebuflist(a:n)
let winnr = tabpagewinnr(a:n)
return bufname(buflist[winnr - 1])
endfunction
這僅僅是一個簡單的例子,結果在一個標籤頁行該 類似於默認,但不添加用於+改性緩衝器或 截斷名稱。在沒有足夠空間時,您會希望以巧妙的方式減少標籤的寬度。檢查 可用空間的'列'選項。
你的情況,你可以存儲在工作目錄列表中的每個選項卡和選項卡標籤設置爲相應的列表元素(使用MyTabLine功能從上面藏漢)。
let twds = ['one', 'two']
function! MyTabLabel(n)
return get(g:twds, a:n - 1, '[no name]')
endfunction