Skip to content

Instantly share code, notes, and snippets.

@Shougo
Created May 29, 2009 05:28
Show Gist options
  • Save Shougo/119798 to your computer and use it in GitHub Desktop.
Save Shougo/119798 to your computer and use it in GitHub Desktop.
" Set tabline.
function! s:my_tabline() "{{{
let l:s = ''
for l:i in range(1, tabpagenr('$'))
let l:bufnrs = tabpagebuflist(i)
let l:curbufnr = l:bufnrs[tabpagewinnr(l:i) - 1] " first window, first appears
let l:no = (l:i <= 10 ? l:i-1 : '#') " display 0-origin tabpagenr.
let l:mod = len(filter(l:bufnrs, 'getbufvar(v:val, "&modified")')) ? '!' : ' '
let l:title = gettabwinvar(l:i, tabpagewinnr(l:i), 'title')
if l:title == ''
let l:title = fnamemodify(gettabwinvar(l:i, tabpagewinnr(l:i), 'cwd'), ':t')
if l:title == ''
let l:title = fnamemodify(bufname(l:curbufnr),':t')
if l:title == ''
let l:title = '[No Name]'
endif
endif
endif
let l:s .= '%'.l:i.'T'
let l:s .= '%#' . (l:i == tabpagenr() ? 'TabLineSel' : 'TabLine') . '#'
let l:s .= l:no . ':' . l:title . l:mod
let l:s .= '%#TabLineFill# '
endfor
let l:s .= '%#TabLineFill#%T%=%#TabLine#|%999X %X'
return l:s
endfunction "}}}
let &tabline = '%!'. s:SID_PREFIX() . 'my_tabline()'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment