像在Firefox中一样切换到Vim中的特定选项卡?

时间:2009-06-03 00:27:25

标签: vim

当我按下Alt +#时,如何让Vim切换到某个标签?例如,要进入第三个选项卡,我会按Alt + 3(就像Firefox中的行为一样)。

编辑:另外,如何制作Control + tab == gt,Control + shift + tab == gT

4 个答案:

答案 0 :(得分:8)

:nmap <M-1> :tabnext 1<CR>
:nmap <M-2> :tabnext 2<CR>
etc.

请参阅:h :tabnext。请注意,默认情况下,您也可以在正常模式下执行Ngt,其中N是所需选项卡的编号(从1开始)。

答案 1 :(得分:5)

这适用于我(从我的rc复制并粘贴):

" Tab Control (others)
 map <A-1> 1gt
 map <A-2> 2gt
 map <A-3> 3gt
 map <A-4> 4gt
 map <A-5> 5gt
 map <A-6> 6gt
 map <A-7> 7gt
 map <A-8> 8gt
 map <A-9> 9gt

还有进一步的善良:

map <C-Right> <ESC>:tabnext<CR>
map <C-Left> <ESC>:tabprev<CR>
map <C-t> <ESC>:tabnew<CR>

您可能希望将其更改为nmap,就像上面的示例一样,将使用限制得更好我在这方面有点懒惰。

使用Ctl-t错过了您的编辑下一个标签:

map <C-t> :tabnext<CR>

由于处理大写字符的方式,我不认为vim中可以使用tabprevious映射:

http://www.nabble.com/Maping-Ctrl-Shift-s-problems-td22918941.html

为了节省一些时间,我想在这个时候去打猎

答案 2 :(得分:1)

在urxvt中实现这一点非常困难。最后我决定使用以下绑定:

:nnoremap <Esc>1 gt1
:nnoremap <Esc>2 gt2
:nnoremap <Esc>3 gt3
:nnoremap <Esc>4 gt4
:nnoremap <Esc>5 gt5
:nnoremap <Esc>6 gt6
:nnoremap <Esc>7 gt7
:nnoremap <Esc>8 gt8
:nnoremap <Esc>9 gt9
:nnoremap <Esc>0 gt0

问题是,在rxvt中,默认情况下,Alt数字组合必然会转义前缀数字。最初我通过在~/.vimrc文件中包含以下内容来管理:

:nnoremap <M-1> gt1
:nnoremap <M-2> gt2
...

通过使用以下'〜/ .Xdefaults'来实现这一点:

URxvt*meta8: true

这会强制rxvt在按下Alt时使用第8个字符位,这是Vim用来检测Alt状态的。在.Xdefaults文件中设置此项可启用第8位。但是,这会导致其他程序出现问题,例如irssiscreen上运行,因此我提出了解决方法。

答案 3 :(得分:0)

在Mac上,您可能需要使用cmd +数字来切换标签。以下效果很好。

map <D-1> 1gt 
map <D-2> 2gt 
map <D-3> 3gt
etc...