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

not*_*ere 39 vim tabs nerdtree

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

A | B | C | D
Run Code Online (Sandbox Code Playgroud)

但我想将标签的位置切换为:

A | C | B | D
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

Mih*_*eac 56

您可以使用:tabmove后跟标签号移动过去.例如,:tabmove 3将使当前选项卡移动到第3个.:tabmove 0移动到开头,:tabmove(没有数字)移动到最后.

另一种方式 - 虽然不是正统的 - 是启用鼠标通过:set mouse=a和拖放标签.一开始可能看起来更简单.

  • 我已经习惯了(稍微)较短的版本:`:tabm 3` (13认同)
  • kshenoy - 该链接自2013/11/29起不再有效 (4认同)
  • 如果您正在寻找方便,可以查看我的.vimrc文件[这里](https://github.com/kshenoy/dotvim/blob/master/mappings.vim),特别是第312-339行.从本质上讲,它与之前的答案相同,但它周围有很好的包装. (2认同)
  • 奇怪的是,即使使用 `:set mouse=a`,gVim 也不会让你移动选项卡。如果您使用 gVim 并且感到困惑,那么鼠标技巧仅适用于“常规”vim 中显示的文本菜单。 (2认同)

She*_*yar 5

将标签移动到左/右

对我来说,将标签移动到当前位置的左侧或右侧更有意义,而不是首先确定我想要的确切数字位置.这些简单的键盘图就是这样做的:

noremap <A-Left>  :-tabmove<cr>
noremap <A-Right> :+tabmove<cr>
Run Code Online (Sandbox Code Playgroud)

现在,您将能够移动当前选项卡:

  • 在左边使用: Alt +Left
  • 在右边使用: Alt +Right

对于MacVim,请尝试使用M而不是A(即<M-Left>)