这几天在学习VIM,在WIN7下装了GVIM,在折腾好配置文件后,就在弄这个
切换标签快捷键的问题。
vim从vim7开始加入了多标签切换的功能,相当于多窗口。
之前的版本虽然也有多文件编辑功能,但是总之不如这个方便啦。
用法

1

2

3

4

5

6

7

8

9

:tabnew [++opt选项] [+cmd] 文件            建立对指定文件新的tab

:tabc       关闭当前的tab

:tabo       关闭所有其他的tab

:tabs       查看所有打开的tab

:tabp      前一个

:tabn      后一个

标准模式下:

gt , gT 可以直接在tab之间切换。

更多可以查看帮助 :help table , help -p

使用alt+数字键来切换tab (vim7+)

不过用gt,gT来一个个切换有点不方便, 如果用:tabnext {count}, 又按键太多. 加入以下代码后, 可以用 alt+n来切换,
比如alt+1切换到第一个tab,alt+2切换到第二个tab。

把以下代码加到vimrc, 或者存为.vim文件,再放到plugin目。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

function! TabPos_ActivateBuffer(num)

    let s:count = a:num

    exe "tabfirst"

    exe "tabnext" s:count

endfunction

function! TabPos_Initialize()

for i in range(1, 9)

        exe "map <M-" . i . "> :call TabPos_ActivateBuffer(" . i . ")<CR>"

    endfor

    exe "map <M-0> :call TabPos_ActivateBuffer(10)<CR>"

endfunction

autocmd VimEnter * call TabPos_Initialize()

上面的看上去太复杂了,来个简单的。

1

2

3

4

5

6

7

8

9

10

:nn <M-1> 1gt

:nn <M-2> 2gt

:nn <M-3> 3gt

:nn <M-4> 4gt

:nn <M-5> 5gt

:nn <M-6> 6gt

:nn <M-7> 7gt

:nn <M-8> 8gt

:nn <M-9> 9gt

:nn <M-0> :tablast<CR>

把这个放进_vimrc配置文件里。

下面把我用的配置文件都帖过来吧,也是照着网上达人修改的,
注意我只在WIN7下的GVIM里实验过有效果。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144

145

146

147

148

149

150

151

152

153

154

155

156

157

158

159

160

161

162

163

164

165

166

167

168

169

170

171

172

173

174

175

176

177

178

179

180

181

182

183

184

185

186

187

188

189

190

191

192

193

194

195

196

197

198

199

200

201

202

203

204

205

206

207

208

209

210

211

212

213

214

if has("gui_running")

    set encoding=utf-8

    set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1

    if has("win32")

        set fileencoding=utf-8

    else

       set fileencoding=utf-8

    endif

    let &termencoding = &encoding

    "解决菜单乱码

    source $VIMRUNTIME/delmenu.vim

    source $VIMRUNTIME/menu.vim

    "解决consle输出乱码

    language messages zh_CN.utf-8

endif

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

" 设置图形界面。

"

" 字体部分,可参考《程序员最喜欢用的编程字体》一文:

" http://www.2maomao.com/blog/best-programmer-fonts/

"如果你的字体名中有空格或者逗号, 你就需要用一个反斜线转义了. 如:

"set guifont=Courier\ New\ 12

if has("gui_running")

    if has("win32")

        " 设定 windows 下 gvim 启动时最大化

        autocmd GUIEnter * simalt ~x

        " 设定 windows 下图形界面下的字体。该字体需要自己下载安装,下载地址:

        " http://ftp.gnome.org/pub/GNOME/sources/ttf-bitstream-vera/1.10/ttf-bitstream-vera-1.10.zip

        " set guifont=Bitstream_Vera_Sans_Mono:h14:cANSI

        " 下面这个是我自己喜欢的一个字体

        set guifont=YaHei_Consolas_Hybrid:h12:cGB2312

    else

        " 设定 linux 下图形界面下的字体,该字体 Fedora 7 自带

        " set guifont=DejaVu\ LGC\ Sans\ Mono\ 14

        set guifont=YaHei_Consolas_Hybrid:h12:cGB2312

    endif

endif

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

if has("gui_running")

    colorscheme desert "or koehler

else

    colorscheme evening

endif

"evening         " 设定背景为夜间模式

filetype plugin on          " 自动识别文件类型,自动匹配对应的

                            " “文件类型Plugin.vim”文件,使用缩进定义文件

set ambiwidth=double        " ambiwidth 默认值为 single。在其值为 single 时,

                            " 若 encoding 为 utf-8,gvim 显示全角符号时就会

                            " 出问题,会当作半角显示。

set autochdir               " 自动切换当前目录为当前文件所在的目录

set autoindent cindent cinoptions=g0

                            " 打开自动缩进和 C 语言风格的缩进模式,

                            " 定制 C 语言缩进风格

set backspace=indent,eol,start

                            " 不设定的话在插入状态无法用退格键和 Delete

                            " 键删除回车符

set backupcopy=yes          " 设置备份时的行为为覆盖

if v:version >= 700

    set completeopt=menu,longest,preview

                            " 自动补全(ctrl-p)时的一些选项:

                            " 多于一项时显示菜单,最长选择,

                            " 显示当前选择的额外信息

endif

set fileformat=dos          " unix|dos|mac,在windos下unix格式不换行。

set confirm                 " 用确认对话框(对于 gvim)或命令行选项(对于

                            " vim)来代替有未保存内容时的警告信息

set display=lastline        " 长行不能完全显示时显示当前屏幕能显示的部分。

                            " 默认值为空,长行不能完全显示时显示 @。

set expandtab               " 将 tab 键转换为空格

set formatoptions=tcqro     " 使得注释换行时自动加上前导的空格和星号

set hidden                  " 允许在有未保存的修改时切换缓冲区,

                            " 此时的修改由切换由 vim 负责保存

set history=500             " 设置冒号命令和搜索命令的命令历史列表的长度为 50

set hlsearch                " 搜索时高亮显示被找到的文本

set ignorecase smartcase    " 搜索时忽略大小写,但在有一个或以上大写字母时

                            " 仍保持对大小写敏感

set incsearch               " 输入搜索内容时就显示搜索结果

set mouse=a                 " 设定在任何模式下鼠标都可用

set nobackup                " 覆盖文件时不备份

set nocompatible            " 设定 gvim 运行在增强模式下

set noignorecase            " 默认区分大小写

set nolinebreak             " 在单词中间断行

set number                  " 显示行号

set ruler                   " 打开状态栏标尺

set scrolloff=5             " 设定光标离窗口上下边界 5 行时窗口自动滚动

set shiftwidth=4            " 设定 << 和 >> 命令移动时的宽度为 4

set showcmd                 " 在状态栏显示目前所执行的指令,未完成的指令片段亦

                            " 会显示出来

set softtabstop=4           " 使得按退格键时可以一次删掉 4 个空格

                            " (不足 4 个时删掉所有剩下的空格)

set tabstop=4               " 设定 tab 长度为 4

set whichwrap=b,s,<,>,[,]   " 设定退格键、空格键以及左右方向键在行首行尾时的

                            " 行为,不影响 h 和 l 键

set nowrap                  " 自动换行显示

syntax on                   " 自动语法高亮

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

" 设置命令行和状态栏

set cmdheight=1             " 设定命令行的行数为 1

set laststatus=2            " 显示状态栏 (默认值为 1, 无法显示状态栏)

#set statusline=%F%m%r\ \|\ %Y,%{&fileencoding}\ \|%=\ %l/%L,%c\ \|\ %f

set statusline=%F%m%r\ \|\ %{&ff},%{\"[\".(&fenc==\"\"?&enc:&fenc).((exists(\"+bomb\")\ &&\ &bomb)?\",B\":\"\").\"]\ \"},%Y\ \|%=\ %l/%L,%c\ \|\ %f

                            " 设置在状态行显示的信息如下:

                            " %f    当前的文件名

                            " %F    当前全路径文件名

                            " %m    当前文件修改状态

                            " %r    当前文件是否只读

                            " %Y    当前文件类型

                            " %{&fileformat}

                            "       当前文件编码

                            " %{&fileencoding}

                            "       中文编码

                            " %b    当前光标处字符的 ASCII 码值

                            " %B    当前光标处字符的十六进制值

                            " %l    当前光标行号

                            " %c    当前光标列号

                            " %V    当前光标虚拟列号 (根据字符所占字节数计算)

                            " %p    当前行占总行数的百分比

                            " %%    百分号

                            " %L    当前文件总行数

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

" 自动命令

" 读文件时自动设定当前目录为刚读入文件所在的目录

autocmd BufReadPost * cd %:p:h

"cscope

if has("cscope")

    set csprg=/usr/bin/cscope

    set csto=0

    set cst

    set nocsverb

    " add any database in current directory

    if filereadable("cscope.out")

        cs add cscope.out

    " else add database pointed to by environment

    elseif $CSCOPE_DB != ""

        cs add $CSCOPE_DB

    endif

    set csverb

endif

"for omnicppcomplete

set nocp

let OmniCpp_MayCompleteScope = 1

let OmniCpp_ShowPrototypeInAbbr = 1

"auto-close proview

"autocmd CursorMovedI * if pumvisible() == 0|pclose|endif

"autocmd InsertLeave * if pumvisible() == 0|pclose|endif

"temp"

""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

" Alt+数字切换Table快捷键设置

:nn <M-1> 1gt

:nn <M-2> 2gt

:nn <M-3> 3gt

:nn <M-4> 4gt

:nn <M-5> 5gt

:nn <M-6> 6gt

:nn <M-7> 7gt

:nn <M-8> 8gt

:nn <M-9> 9gt

:nn <M-0> :tablast<CR>

""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

set nocompatible

source $VIMRUNTIME/vimrc_example.vim

source $VIMRUNTIME/mswin.vim

behave mswin

set diffexpr=MyDiff()

function MyDiff()

  let opt = '-a --binary '

  if &diffopt =~ 'icase' | let opt = opt . '-i ' | endif

  if &diffopt =~ 'iwhite' | let opt = opt . '-b ' | endif

  let arg1 = v:fname_in

  if arg1 =~ ' ' | let arg1 = '"' . arg1 . '"' | endif

  let arg2 = v:fname_new

  if arg2 =~ ' ' | let arg2 = '"' . arg2 . '"' | endif

  let arg3 = v:fname_out

  if arg3 =~ ' ' | let arg3 = '"' . arg3 . '"' | endif

  let eq = ''

  if $VIMRUNTIME =~ ' '

    if &sh =~ '\<cmd'

      let cmd = '""' . $VIMRUNTIME . '\diff"'

      let eq = '"'

    else

      let cmd = substitute($VIMRUNTIME, ' ', '" ', '') . '\diff"'

    endif

  else

    let cmd = $VIMRUNTIME . '\diff'

  endif

  silent execute '!' . cmd . ' ' . opt . arg1 . ' ' . arg2 . ' > ' . arg3 . eq

endfunction

vim切换tab标签快捷键相关推荐

  1. html5点击切换选项卡,简单纯js实现点击切换TAB标签实例

    一个不需要jQuery实现的tab选项卡切换效果,代码简洁易用. 默认是鼠标悬停显示tab效果,可将其中的onmouseover 修改为 onclick 点击效果 使用方法: 1.将附件中的index ...

  2. uniapp滑动切换tab标签_Web前端,Tab切换,缓存,页面处理的几种方式

    前言 相信tab切换对于大家来说都不算陌生,后台管理系统中多会用到.如果不知道的话,可以看一下浏览器上方的标签页切换,大概效果就是这样. 1.如何切换 使用动态组件,相信大家都能看懂(部分代码省略)/ ...

  3. php tab标签,JavaScript代码分享:tab标签的切换

    本文实例讲述了js实现点击切换TAB标签.分享给大家供大家参考.具体如下: 这里演示的选项卡效果代码,无jq,纯JS来实现,灰色风格,没有怎么美化,或许看上去比较普通,不过兼容性和操作起来挺舒服的,风 ...

  4. html5 css3 卡片切换,HTML5之纯CSS3实现的tab标签切换

    HTML5的运用之纯CSS3实现的tab标签切换 CSS3代码实现的tab标签切换 *{padding:0px;margin:0px;} #tab{margin:20px;20px;position: ...

  5. html tab切换jquery,jQuery版Tab标签切换

    鼠标移入Tab的时候会有一定的延时才会切换到相应的项,防止用户不经意的鼠标操作,点击相应的项也可以切换 效果图: 源代码: Tab标签切换 body{ background:#fff;} *{ mar ...

  6. jQuery bind事件练习及tab标签切换的实现

    1.bind事件 jQuery部分代码: <script type="text/javascript"> $(document).ready(function(){   ...

  7. JS 实现 Tab标签切换功能

    Tab标签切换 效果图: HTML部分: <div class="wrap">     <ul id="tag">       < ...

  8. vue2.0 实现tab标签切换效果 内容可以自行定义

    利用vue2.0 实现tab标签切换效果 比较实用 初学vue,练习写了一个demo 网上有很多同样的例子,但都只是改text数据,如果我想加入图片或者复杂的dom结构就不实用,今天这个就刚好可以. ...

  9. layui tab标签 设置只读,不可手动切换 外部按钮切换tab

    设置只读最核心的代码只有一个 style="pointer-events: none;" 外部按钮切换tab的核心代码: 要使用layui 的element这个组件对象 最外面的一 ...

最新文章

  1. 制作U盘安装Ubuntu系统
  2. PowerPC中断系统简介(一)
  3. linux iopen i2c dev,i2c-dev - Linux驱动子系统之I2C_Linux编程_Linux公社-Linux系统门户网站...
  4. 写模拟挂用什么工具?
  5. javascript设计思维
  6. 解决 invalid input detected at ‘^’ marker的问题
  7. oracle 11g segment,11g视图dba_segments中增加了一个有用的segment_subtype字段!
  8. ESXI6.5虚拟开机自启动设置
  9. CSS文本溢出的处理方法总结
  10. 终于解决了无运行无网上邻居的问题
  11. 用计算机编码原理解释,编码原理
  12. 关于如何在Android、Java等非微软平台上建立高信任的SharePoint应用程序
  13. 2022年考研计算机-数据库原理8-11章
  14. sparkstreaming消费receive
  15. 个人网站有赞云支付接口申请方法
  16. Android修真传之工厂模式
  17. webstorm或phpstorm配置CSS或JS压缩
  18. Python函数返回多个值的方法
  19. dz邮箱验证怎么设置_详细步骤!Discuz如何设置通过 SOCKET 连接 SMTP 服务器发送(支持 ESMTP 验证)实现论坛邮箱验证功能...
  20. c语言程序的上标怎么打出来,c上标2下标5怎么算

热门文章

  1. 开心网kaixin001 com外挂免费下载
  2. 椎体压缩性骨折与骨密度:CT图像的自动检测与分类
  3. python字符串相似度去重_Python 字符串相似性的几种度量方法
  4. Android程序员的悲哀是什么?
  5. Python语言基础与应用-北京大学 上机练习01
  6. python并发分布式框架Celery搭建
  7. 氟离子选择性电极测定含氟牙膏中氟含量
  8. Stm32 一键下载电路详解
  9. Arduino项目——基于HC-SR04测距的智能垃圾桶
  10. 非标行业的类标准产品经验