46 lines
1,006 B
VimL
46 lines
1,006 B
VimL
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 ? '%2*' : '%1*')
|
|
let s .= ' '
|
|
let s .= i . ':'
|
|
let s .= winnr . '/' . tabpagewinnr(i,'$')
|
|
|
|
let bufnrlist = tabpagebuflist(i)
|
|
for bufnr in bufnrlist
|
|
if getbufvar(bufnr, "&modified")
|
|
let s .= '+'
|
|
break
|
|
endif
|
|
endfor
|
|
|
|
let s .= ' %*'
|
|
let s .= (i == t ? '%#TabLineSel#' : '%#TabLine#')
|
|
let bufnr = buflist[winnr - 1]
|
|
let file = bufname(bufnr)
|
|
let buftype = getbufvar(bufnr, 'buftype')
|
|
if buftype == 'nofile'
|
|
if file =~ '\/.'
|
|
let file = substitute(file, '.*\/\ze.', '', '')
|
|
endif
|
|
else
|
|
let file = fnamemodify(file, ':p:t')
|
|
endif
|
|
if file == ''
|
|
let file = '[No Name]'
|
|
endif
|
|
let s .= file
|
|
let i = i + 1
|
|
endwhile
|
|
let s .= '%T%#TabLineFill#%='
|
|
let s .= (tabpagenr('$') > 1 ? '%999XX' : 'X')
|
|
return s
|
|
endfunction
|
|
set stal=2
|
|
set tabline=%!MyTabLine()
|