add tab numbering to vim
authorAndrew Lorimer <andrew@lorimer.id.au>
Fri, 7 Jun 2019 05:33:05 +0000 (15:33 +1000)
committerAndrew Lorimer <andrew@lorimer.id.au>
Fri, 7 Jun 2019 13:13:59 +0000 (23:13 +1000)
vim/.vimrc
index 6c97d78a40277a8538b7931c67b18e0e12ca883a..cc0de53a46f8e20d0073e42db144d513d5ee4a19 100644 (file)
@@ -33,3 +33,45 @@ augroup END
 
 let g:vim_markdown_conceal=1
 hi conceal None
+
+if has('gui')
+  set guioptions-=e
+endif
+if exists("+showtabline")
+  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 ? '%1*' : '%2*')
+      let s .= ' ' . i
+      if tabpagewinnr(i,'$') > 1
+        let s .= ':' . winnr . '/' . tabpagewinnr(i,'$')
+      endif
+      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 tabline=%!MyTabLine()
+endif