'tabline'オプションは、タブページのラベルがどのように表示されるかを指定します。 GUIタブラインがない場合にのみ使用されます。
タブページラベルを含む行をいつ表示するかを指定するには、 'showtabline'オプションを使用します。複数のタブページがある場合は常に表示されません。また、 が常に表示されます。
タブページの行のハイライト表示は、TabLine TabLineSelおよびTabLineFillというグループで設定されます。| hl-TabLine | | hl-TabLineSel | | hl-TabLineFill |
変更されたウィンドウを持つタブページの "+"が表示されます。タブページ内の ウィンドウの数も表示されます。したがって、「3+」は3つのウィンドウを意味し、 のうちの1つは変更されたバッファを有する。
[tabline]オプションを使用すると、タブページ のラベルに優先する方法を定義できます。これは簡単ではないので、例をここに示します。
基本については、 'statusline'オプションを参照してください。 の[tabline]オプションでも同じ項目を使用できます。さらに、| tabpagebuflist()|、| tabpagenr()|および | tabpagewinnr()|関数が便利です。
タブラベルの数が異なるため、 の式を使用する必要があります。 > :set tabline =%!MyTabLine()
次に、MyTabLine()関数を定義して、すべてのタブページのラベルを表示します。 A 便利な方法は、2つの部分に分割することです。まず、すべてのタブ のタブを開き、それらのラベルを定義します。次に、各タブページのラベルを取得します。 >
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
これは、タブページの結果は がデフォルトに似ているが、名前を切り捨て修正バッファまたは のために+を追加することなく、その行ということだけで単純化した例です。十分なスペースがない場合は、 という巧妙な方法でラベルの幅を狭くすることをお勧めします。利用可能なスペースが「 」の場合は、「列」オプションを選択してください。
タブが選択されているときに、タブごとにウィンドウカウンタのスタイルを設定しますか? – jviotti