如何重新排列打开的标签?


16

比方说,我有四个打开的文件:file0.txtfile1.txtfile2.txt,和file3.txt。我按标签的顺序打开所有这些标签。所以我的标签排序是这样的:

  • file0.txt
  • file1.txt
  • file2.txt
  • file3.txt

然后,假设我想重新排序我的标签,以便file2.txt先于file1.txt

  • file0.txt
  • file2.txt
  • file1.txt
  • file3.txt

我怎么做?是否有Vim命令将当前选项卡向左或向右移动,或以其他方式对当前打开的选项卡重新排序?

Answers:


18

您可以使用该tabmove命令。(:help tabmove会告诉您所有您需要知道的内容)

该命令采用两种参数:

符号(+-)后跟数字:

  • :tabmove +2 会将您的2个标签页向右移动
  • :tabmove -2 将在左侧执行相同操作。

您还可以使用带有简单数字的命令来设置选项卡的位置:

  • :tabmove 0 将选项卡作为第一个
  • :tabmove 2 将标签置于第三位置
  • :tabmove 会把标签作为最后一个

我也把那些线放在我的 .vimrc

" move current tab to left/right
noremap <Leader><Left>  :execute 'silent! tabmove ' . (tabpagenr()-2)<CR>
noremap <Leader><Right> :execute 'silent! tabmove ' . tabpagenr()<CR>

它们使您可以通过组合Leader+ Right arrowLeader+ 将当前选项卡移动到一个位置,Left arrow也许它们可能对您有用。

编辑:正如@TomMcDo在评论中指出的,以前的映射可以简化并仍然可以正常工作:

noremap <Leader><Left>  :tabmove -1<CR>
noremap <Leader><Right> :tabmove +1<CR>

3
在您的映射中,为什么不使用:tabmove -1:tabmove +1
tommcdo

@tommcdo:好吧……几个月前我做了这些映射,现在我不知道我在想什么。当我在答案中复制它时,我没有想到任何事情。无论如何,您完全正确,我将编辑我的答案以使标题更简单:-)
statox
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.