6 for buf in split(bufsRaw, "\n")
7 let buf = substitute(buf, "\"", "", "g")
9 for ent in split(buf, " ")
10 if len(ent) == 0 | continue | endif
11 let ents = add(ents, substitute(ent, "%", "%%", "g"))
13 let linenum = ents[-1]
14 let ents = ents[:-3] " strip message with line number
15 if len(ents) == 4 | let ents = [ents[0], ents[1] . ents[2], ents[3]] | endif
16 if len(ents) == 3 | let ents = [ents[0] . ":" . ents[1], ents[2]] | endif
17 let ents[0] = "%#TabLine#" . ents[0] . "%*"
18 if len(ents[1]) > 20 | let ents[1] = "<" . ents[1][-(20-1):] | endif
19 let ents[1] = ents[1] . ":" . linenum
20 if match(ents[0], "%%") == -1
21 let ents[1] = "%#TabLine#:" . ents[1] . "%*"
23 let ents[1] = "%#TabLineSel#" . ents[1] . "%*"
25 let bufs = add(bufs, join(ents[:1], ""))
27 return join(bufs, " ")
31 set tabline=%!BufTabline()