72 lines
1.7 KiB
VimL
72 lines
1.7 KiB
VimL
if exists("+showtabline")
|
|
|
|
" Rename tabs to show tab number.
|
|
" based on:
|
|
" http://stackoverflow.com/questions/5927952/whats-implementation-of-vims-default-tabline-function
|
|
|
|
function! MyTabLine()
|
|
let s = ''
|
|
let t = tabpagenr()
|
|
let i = 1
|
|
while i <= tabpagenr('$')
|
|
let buflist = tabpagebuflist(i)
|
|
let winnr = tabpagewinnr(i)
|
|
let s .= '%' . i . 'T'
|
|
let s .= (i == t ? '%1*' : '%2*')
|
|
|
|
let s .= (i == t ? '%#TabNumSel#' : '%#TabNum#')
|
|
let s .= ' ' . i
|
|
let s .= '%#TabSeparator#:'
|
|
let s .= (i == t ? '%#TabLineItemSel#' : '%#TabLineItem#')
|
|
|
|
let bufnr = buflist[winnr - 1]
|
|
let file = bufname(bufnr)
|
|
let buftype = getbufvar(bufnr, '&buftype')
|
|
|
|
if buftype == 'help'
|
|
let file = 'help:' . fnamemodify(file, ':t:r')
|
|
|
|
elseif buftype == 'quickfix'
|
|
let file = 'quickfix'
|
|
|
|
elseif buftype == 'nofile'
|
|
if file =~ '\/.'
|
|
let file = substitute(file, '.*\/\ze.', '', '')
|
|
endif
|
|
|
|
else
|
|
let file = pathshorten(fnamemodify(file, ':p:~:.'))
|
|
|
|
endif
|
|
|
|
if file == ''
|
|
let file = "''"
|
|
endif
|
|
|
|
let s .= file . ' %#mNoise# '
|
|
|
|
let i = i + 1
|
|
|
|
endwhile
|
|
|
|
let s .= '%T%#TabLineFill#%='
|
|
let s .= '%#mNoise# '
|
|
let s .= '%#TabSeparator# "%#TabLineItemSel#%{v:register}%#TabSeparator#" '
|
|
let s .= '%#mNoise# '
|
|
let s .= "%#TabLineItemSel# %{ObsessionStatus(fnamemodify(v:this_session,':t'),'---')} %*"
|
|
|
|
return s
|
|
|
|
endfunction
|
|
|
|
highlight def link TabNum Comment
|
|
highlight def link TabNumSel String
|
|
highlight def link TabSeparator Comment
|
|
highlight def link TabLineItem Comment
|
|
highlight def link TabLineItemSel String
|
|
|
|
set showtabline=2
|
|
set tabline=%!MyTabLine()
|
|
|
|
endif " exists("+showtabline")
|