如何在VIM中更改标签页顺序?

55

有没有办法改变Vim中标签的顺序(例如,更改标签栏中标签的位置)?例如,假设当前我的标签顺序如下:

A | B | C | D

但我想把选项卡的位置换成这样:

A | C | B | D

我该怎么做?


1
可能是如何在Vim中移动标签页的命令?的重复问题。 - cfi
3个回答

75

您可以使用:tabmove 命令加上标签页编号来移动标签页。例如,:tabmove 3 将当前标签页移动到第三个标签页之后。:tabmove 0 移动到开头,而:tabmove(没有数字)则移动到结尾。

另一种方式,虽然不被推荐,是通过启用鼠标拖放标签页来移动它们,可通过:set mouse=a 命令实现。这种方法可能看起来更简单。


15
我已经习惯了稍微缩短的版本::tabm 3 - Walter
有一种方法可以使用鼠标来完成这个操作,我已经更新了答案 :) - Mihai Maruseac
2
如果您正在寻找方便,可以查看我的 .vimrc 文件此处,特别是第312-339行。本质上与之前的答案相同,但具有漂亮的包装。 - kshenoy
5
2013/11/29起,kshenoy的链接已不再有效。 - squeegee
2
奇怪的是,即使使用“:set mouse=a”命令,gVim也无法移动选项卡。如果您正在使用gVim并感到困惑,那么鼠标技巧仅适用于在“常规”vim中显示的文本菜单。 - Two-Bit Alchemist

10

将标签页移动到左侧/右侧

对我来说,将标签页移动到其当前位置的左侧或右侧比首先确定我想要它们的确切数字位置更有意义。这些简单的快捷键正是这样做的:

noremap <A-Left>  :-tabmove<cr>
noremap <A-Right> :+tabmove<cr>

现在你可以移动当前标签页:

  • 向左移动:按下 Alt + Left
  • 向右移动:按下 Alt + Right

对于 MacVim,尝试使用 M 来代替 A(即 <M-Left>


这个映射在我的Ubuntu 14.04和vim 7.4上没有将选项卡向前移动一步。 - Right leg
我也在使用Ubuntu 14.04和Vim 7.4,它对我有效。也许你的终端没有配置处理“Alt”键的功能。尝试其他键(例如“Leader”键)。 - Sheharyar
抱歉,我之前匆忙发表了那个评论。我的意思是,该映射不会将选项卡向前移动一步,而是在两个位置之间来回移动它们。假设 tab 在位置 A,按下 alt+right 将其移动到 B,然后再按 alt+right 不会有任何变化,但按 alt+left 将其移回到 A,然后再按 alt+left 不会有任何变化,但按 alt+right 又将其移回到 A,如此往复。 - Right leg
这正是意图所在,也回答了问题。再试试加入几个制表符,你就会知道为什么它更好了。 - Sheharyar
1
哇,这是一种更好的技术。正是我想要的。 - VinGarcia
不知道为什么只有+tabmove起作用了。(vim 7.4.629) - Fisher

4

对我来说,-tabmove命令无法正常工作。

我正在使用以下命令:Ctrl+Shift+PageUp|PageDown。

nmap <C-S-PageUp>   :tabmove -1<cr>
nmap <C-S-PageDown> :tabmove +1<cr>

两者都可以,tabm和tabm-1在我的Linux系统上的gvim版本7.4上都能正常工作。 - G Eitan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接