]> Sergey Matveev's repositories - dotfiles.git/blobdiff - vim/.vim/plugin/buftabline.vim
Many opened buffers causes Vim segfault
[dotfiles.git] / vim / .vim / plugin / buftabline.vim
index e40885cdea8dac37a5c30076bb42e9a62513f8ef..4e48497bed24e1b63643f3c63f56335c40124b71 100644 (file)
@@ -3,18 +3,20 @@ function! BufTabline()
     silent buffers
     redir END
     let bufs = []
-    for buf in split(bufsRaw, "\n")
+    for buf in split(bufsRaw, "\n")[:16]
         let buf = substitute(buf, "\"", "", "g")
         let ents = []
         for ent in split(buf, " ")
             if len(ent) == 0 | continue | endif
             let ents = add(ents, substitute(ent, "%", "%%", "g"))
         endfor
-        let ents = ents[:-3]
+        let linenum = ents[-1]
+        let ents = ents[:-3] " strip message with line number
         if len(ents) == 4 | let ents = [ents[0], ents[1] . ents[2], ents[3]] | endif
         if len(ents) == 3 | let ents = [ents[0] . ":" . ents[1], ents[2]] | endif
         let ents[0] = "%#TabLine#" . ents[0] . "%*"
-        if len(ents[1]) > 20 | let ents[1] = "<" . ents[1][-19:] | endif
+        if len(ents[1]) > 20 | let ents[1] = "<" . ents[1][-(20-1):] | endif
+        let ents[1] = ents[1] . ":" . linenum
         if match(ents[0], "%%") == -1
             let ents[1] = "%#TabLine#:" . ents[1] . "%*"
         else