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 - ])
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 =
if i + == tabpagenr()
let hlTab = '%#SelectTabLine#'
" 设置标签页号 (用于鼠标点击)
let s .= hlTab . "[%#SelectPageNum#%T" . (i + ) . hlTab
let select =
else
let hlTab = '%#NormalTabLine#'
" 设置标签页号 (用于鼠标点击)
let s .= hlTab . "[%#NormalPageNum#%T" . (i + ) . hlTab
endif " MyTabLabel() 提供标签
let s .= ' %<%{MyTabLabel(' . (i + ) . ', ' . select . ')} ' "追加窗口数量
let wincount = tabpagewinnr(i + , '$')
if wincount >
if select ==
let s .= "%#SelectWindowsNum#" . wincount
else
let s .= "%#NormalWindowsNum#" . wincount
endif
endif
let s .= hlTab . "]"
endfor " 最后一个标签页之后用 TabLineFill 填充并复位标签页号
let s .= '%#TabLineFill#%T' " 右对齐用于关闭当前标签页的标签
if tabpagenr('$') >
let s .= '%=%#TabLine#%999XX'
endif return s
endfunction
set tabline=%!MyTabLine()

将这段代码复制到.vimrc之中,:source ~/.vimrc或者重新打开vim,即可看到新的标签栏效果。下面给出了标签栏优化前后的对比:

前:

后:

可以看到相比于之前,保留了修改标记“+”、窗口数量,只保留了文件名,标签栏的最大长度比之前更长,最关键的是,增加了标签序号的显示。这个改动初看可能没有以前的好看,但是关键在于,我们掌握了自定义标签栏的方式,并且掌握了颜色的设置,具体细节可以通过查阅vim帮助手册来获取。

参考:

最新文章

  1. github 相关英语
  2. jquery ajax的error错误信息
  3. window.returnValue跨域传值问题[转]
  4. Mysql-学习笔记(==》触发器 十一)
  5. EditPlus去行号/行标
  6. .net orm比较之dapper和Entity Framework6的简单测试比较
  7. 学会简单使用poi进行excel有关操作
  8. 2dx解析cocosbuilder中使用layer时的缺陷
  9. [HDOJ2818]Building Block(带权并查集,路径压缩)
  10. bzoj 1449 [JSOI2009]球队收益(费用拆分,最小费用流)
  11. Linux永久挂载远程网络目录
  12. linq 跨库查询
  13. Linux进程控制——exec函数族
  14. SQL命令语句进行大数据查询如何进行优化
  15. SQL死锁操作
  16. Web前端渗透测试技术小结(一)
  17. 剑指offer题目java实现
  18. Sightseeing tour HDU - 1956(混合欧拉回路)
  19. jQuery事件--blur()和focus()
  20. Kali Linux没有无线网卡?玩个锤纸~

热门文章

  1. shell监控网卡状态,故障时自动重启网卡
  2. Web 漏洞分析与防御之点击劫持(三)
  3. RK3288 error: undefined reference to &#39;LOGD&#39;
  4. Python一些特殊用法(map、reduce、filter、lambda、列表推导式等)
  5. 【备忘录】yii2高级模板多个应用启用同一个域名多个栏目
  6. BOM的编制与管理
  7. CArray,CList,CMap如何实例化
  8. 窗口点击模拟a
  9. Java 成员变量和局部变量
  10. 1094 The Largest Generation