Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1738782
  • 博文数量: 410
  • 博客积分: 9563
  • 博客等级: 中将
  • 技术积分: 4517
  • 用 户 组: 普通用户
  • 注册时间: 2010-07-03 19:59
个人简介

文章分类

全部博文(410)

文章存档

2017年(6)

2016年(1)

2015年(3)

2014年(4)

2013年(32)

2012年(45)

2011年(179)

2010年(140)

分类: LINUX

2011-07-02 21:51:33

从Vim7.0开始vim开始正式支持Tab页,可以比较方便地使用标签页了,前面转了一篇文章介绍Tab的使用,今天想实现Alt+N来自动切换标签页的功能,发现1338插件,也就是网上流传的alt+N方案是针对缓冲区的,并不是针对标签页的,实际上非常简单,把下面这些贴到vimrc里面,就OK了。
使用说明:
  1. Alt+1会切换到1号标签页,同时支持1..10,Alt+0表示10;
  2. Alt+左右键能够左右移动当前的标签页;
  3. 下面的代码能够实现给每个标签页数字编号;
VimL语言:
01 " 关于标签页的标题修改 "
02 " 使用了自定义函数  GuiTabLabel()
03 set showtabline=2 " always show tabs in gvim, but not vim
04 set guitablabel=%{GuiTabLabel()}"
05
06 "
07 " 修改标签页的标题
08 " set up tab labels with tab number, buffer name, number of windows
09 "
10 function! GuiTabLabel()"
11   let label = ''
12   let bufnrlist = tabpagebuflist(v:lnum)
13   " Add '+' if one of the buffers in the tab page is modified
14   for bufnr in bufnrlist
15     if getbufvar(bufnr, "&modified")
16       let label = '+'
17       break
18     endif
19   endfor
20   " Append the tab number
21   let label .= v:lnum.': '
22   " Append the buffer name
23   let name = bufname(bufnrlist[tabpagewinnr(v:lnum) - 1])
24   if name == ''
25     " give a name to no-name documents
26     if &buftype=='quickfix'
27       let name = '[Quickfix List]'
28     else
29       let name = '[No Name]'
30     endif
31   else
32     " get only the file name
33     let name = fnamemodify(name,":t")
34   endif
35   let label .= name
36   " Append the number of windows in the tab page
37   let wincount = tabpagewinnr(v:lnum, '$')
38   return label . '  [' . wincount . ']'
39 endfunction"
40
41 "
42 " 让gvim支持Alt+n来切换标签页
43 "
44 function! Tabmap_Initialize()
45     for i in range(1, 9)
46         exe "map ".i."gt"
47     endfor
48     exe "map 10gt"
49 endfunction
50 autocmd VimEnter * call BufPos_Initialize()
51
52 "
53 " alt+左右键来移动标签
54 "
55 nn <silent> <M-left> :if tabpagenr() == 1\|exe "tabm ".tabpagenr("$")\|el\|exe "tabm ".(tabpagenr()-2)\|en
56 nn <silent> <M-right> :if tabpagenr() == tabpagenr("$")\|tabm 0\|el\|exe "tabm ".tabpagenr()\|en
阅读(3771) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~