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帮助手册来获取。

参考:

VIM-美化你的标签栏的更多相关文章

  1. mac编辑器vim美化

    mac编辑器vim美化 contents 环境 效果呈现 安装 quick start 环境 mac10.13.6,vim7(该版本mac自带的vim是7),git mac下vim的配置文件有两处 一 ...

  2. vim美化基本配置

    在home目录中创建一个 .vimrc文件 vim ~/.vimrc 文件基本配置 " 设置当文件被改动时自动载入 set autoread " quickfix模式 autocm ...

  3. linux配置powerline(bash/vim)美化

    安装powerline需要pip 链接:https://pan.baidu.com/s/1Jc59VD35PYic2fTK5v8h1w 密码:otfp pip curl https://bootstr ...

  4. ubuntu16.04和vim的配置与美化

    目录 ubuntu16.04配置 ubuntu16.04 美化 vim配置 vim美化 ubuntu16.04配置 安装vim sudo apt-get install vim-gnome 换源 su ...

  5. 我的 vim 基本配置

    " required 使用 vundle 需要先设置这两项 set nocompatible filetype off " 设置 vundle 插件 使用帮助:https://gi ...

  6. 我個人喜歡的一些Ubuntu的相關配置

    1.vim vim安裝: sudo apt-get install vim-gtk vim美化:刚安装的VIM,可能界面并不是十分友好,我们可以更改vim的配置文件,按照我们的需求去修改它.在命令行下 ...

  7. 在vim中使用perltidy美化perl代码

    来源: http://www.cnblogs.com/itech/archive/2013/02/18/2915279.html 格式优美的perl代码不但让人赏心悦目,而且可以方便阅读. perlt ...

  8. Archlinux YouCompleteMe+syntastic vim自己主动补全插件,显示缩进和状态栏美化,爽心悦目的vim

    Archlinux 安装和配置vim补全插件YouCompleteMe的过程. 參考: https://github.com/Valloric/YouCompleteMe https://github ...

  9. vim 使用说明

    =========================================================本使用说明与 把VIM打造成IDE 配套======================= ...

随机推荐

  1. 《DSP using MATLAB》示例Example8.2

    代码: N = 3; OmegaC = 0.5; % Direct form [b, a] = u_buttap(N, OmegaC); [C, B, A] = sdir2cas(b, a) 运行结果 ...

  2. wamp配置局域网访问

    Apache的版本是2.4.9. <Directory "D:/wamp/www/">    #    # Possible values for the Option ...

  3. 基于模k可逆计数的数字锁相环fpga实现

    参考http://wenku.baidu.com/view/59420cb069dc5022aaea00bd.html 实现结构是参考的上边的实例,我用的全同步实现,实现过程中发现一些现象,做下记录. ...

  4. 【java基础】java中Object对象中的Hashcode方法的作用

    以下是关于HashCode的官方文档定义: hashcode方法返回该对象的哈希码值.支持该方法是为哈希表提供一些优点,例如,java.util.Hashtable 提供的哈希表. hashCode  ...

  5. python string 之 format

    python 在 2.6之后支持了string的format功能, 很强大, 应该成为使用习惯. http://blog.csdn.net/handsomekang/article/details/9 ...

  6. pat1022__字符串查找

    主要是对字符串的查找,为了方便并且快速的实现查找,用map会比较方便 同时如何把一个带有空格的字符串变成多个单词也有一个小技巧 char *point=book[i].keyWord;//关键词分离 ...

  7. 使用zabbix监控mysql

    系统版本: centos6 x86_64 mysql版本: mysql5.6 实施目的: 监控mysql 客户端配置: 1.准备工作:搭建zabbix服务,使服务端客户端连接成功,并有基础监控项 2. ...

  8. 记录:Web无引用无配置方式动态调用WCF服务

    这几年一直用WebApi较多,最近项目中有个需求比较适合使用WCF,以前也用过JQuery直接调用Wcf的,但是说实话真的忘了… 所以这次解决完还是花几分钟记录一下 WCF服务端:宿主在现有Win服务 ...

  9. 手势GestureDetector.OnGestureListener事件的调起

    @Override public boolean onTouchEvent(MotionEvent event) { switch (event.getAction()) { case MotionE ...

  10. JNI的一个简单实例

    本例子使用的操作系统MacOS, 64位JVM. JNI编写的几个步骤如下: 编写Java代码,并注明native方法: public class HelloJni { public native v ...