-function! BufTabline()
+if exists('*<SID>BufTabLine') | finish | endif
+
+function! s:BufTabline()
redir => bufsRaw
silent buffers
redir END
for buf in split(bufsRaw, "\n")[:16]
let leftIdx = stridx(buf, '"')
let rightIdx = strridx(buf, '"')
- let filename = buf[leftIdx + 1 : rightIdx - 1]
+ let filename = substitute(buf[leftIdx + 1 : rightIdx - 1], "%", "%%", "g")
let linenum = split(buf[rightIdx:], " ")[-1]
let attrs = split(buf[:leftIdx-1], '\s\+')
let attrs = map(attrs, 'substitute(v:val, "%", "%%", "g")')
return join(bufs, " ")
endfunction
+function! BufTabline()
+ return s:BufTabline()
+endfunction
+
set showtabline=2
set tabline=%!BufTabline()