假设我有四个打开的文件:file0.txtfile1.txtfile2.txtfile3.txt。我以标签的顺序打开所有这些标签。因此,我的制表符排序是这样的:


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

那么我想说而是重新排序我的标签,以便file2.txtfile1.txt之前:


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

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

#1 楼

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

该命令采用两种参数:

符号(+-)后跟数字:



:tabmove +2会将您的2个标签页向右移

:tabmove -2会将标签向左移。也可以使用带有简单数字的命令来设置选项卡的位置: :tabmove 0会将标签页放在第三个位置

:tabmove 2会将标签页放在最后一个位置

我也将这些行放在我的:tabmove

" 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箭头和Leader + Left箭头来移动一个位置的当前选项卡,也许它们可能对您有用。

编辑:正如@TomMcDo在评论中指出的那样,以前的映射可以简化并且仍然可以正常使用:

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


评论


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

–tommcdo
15年7月3日在13:27

@tommcdo:好吧...几个月前我做了这些映射,现在我不知道我在想什么。当我在答案中复制它时,我没有想到任何事情。无论如何,您完全正确,我将编辑我的答案以使标题更简单:-)

–statox♦
15年7月3日在13:33