vim的標簽欄是一個比較有用的功能,我們可以通過gt和gT快捷鍵前后切換標簽頁,也可以用數字+gt的方式,快速跳轉到某個標簽頁,但是默認的標簽欄上標簽序號並沒有顯示出來,在標簽頁較多的時候,想要通過數字+gt的方式迅速跳轉時,就不是很方便了。
有鑒於此,筆者通過一定的摸索, 自定義了自己的一個簡單的標簽欄。代碼如下:
"-----------------------美化標簽欄----------------------- "定義顏色 hi SelectTabLine term=Bold cterm=Bold gui=Bold ctermbg=None hi SelectPageNum cterm=None ctermfg=Red ctermbg=None hi SelectWindowsNum cterm=None ctermfg=DarkCyan ctermbg=None hi NormalTabLine cterm=Underline ctermfg=Black ctermbg=LightGray hi NormalPageNum cterm=Underline ctermfg=DarkRed ctermbg=LightGray hi NormalWindowsNum cterm=Underline ctermfg=DarkMagenta ctermbg=LightGray function! MyTabLabel(n, select) let label = '' let buflist = tabpagebuflist(a:n) for bufnr in buflist if getbufvar(bufnr, "&modified") let label = '+' break endif endfor let winnr = tabpagewinnr(a:n) let name = bufname(buflist[winnr - 1]) if name == '' "為沒有名字的文檔設置個名字 if &buftype == 'quickfix' let name = '[Quickfix List]' else let name = '[No Name]' endif else "只取文件名 let name = fnamemodify(name, ':t') endif let label .= name return label endfunction function! MyTabLine() let s = '' for i in range(tabpagenr('$')) " 選擇高亮 let hlTab = '' let select = 0 if i + 1 == tabpagenr() let hlTab = '%#SelectTabLine#' " 設置標簽頁號 (用於鼠標點擊) let s .= hlTab . "[%#SelectPageNum#%T" . (i + 1) . hlTab let select = 1 else let hlTab = '%#NormalTabLine#' " 設置標簽頁號 (用於鼠標點擊) let s .= hlTab . "[%#NormalPageNum#%T" . (i + 1) . hlTab endif " MyTabLabel() 提供標簽 let s .= ' %<%{MyTabLabel(' . (i + 1) . ', ' . select . ')} ' "追加窗口數量 let wincount = tabpagewinnr(i + 1, '$') if wincount > 1 if select == 1 let s .= "%#SelectWindowsNum#" . wincount else let s .= "%#NormalWindowsNum#" . wincount endif endif let s .= hlTab . "]" endfor " 最后一個標簽頁之后用 TabLineFill 填充並復位標簽頁號 let s .= '%#TabLineFill#%T' " 右對齊用於關閉當前標簽頁的標簽 if tabpagenr('$') > 1 let s .= '%=%#TabLine#%999XX' endif return s endfunction set tabline=%!MyTabLine()
將這段代碼復制到.vimrc之中,:source ~/.vimrc或者重新打開vim,即可看到新的標簽欄效果。下面給出了標簽欄優化前后的對比:
前:
后:
可以看到相比於之前,保留了修改標記“+”、窗口數量,只保留了文件名,標簽欄的最大長度比之前更長,最關鍵的是,增加了標簽序號的顯示。這個改動初看可能沒有以前的好看,但是關鍵在於,我們掌握了自定義標簽欄的方式,並且掌握了顏色的設置,具體細節可以通過查閱vim幫助手冊來獲取。
參考: