70 lines
1.7 KiB
VimL
70 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 . ' '
|
||
|
|
||
|
let i = i + 1
|
||
|
|
||
|
endwhile
|
||
|
|
||
|
let s .= '%T%#TabLineFill#%='
|
||
|
let s .= '%#TabSeparator#"%#TabLineItemSel#%{v:register}%#TabSeparator#" '
|
||
|
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")
|