VIM-美化你的标签栏
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帮助手册来获取。
参考: