Как изменить порядок открытых вкладок?

16

Скажем , у меня есть четыре открытых файлов: file0.txt, file1.txt, file2.txt, и file3.txt. Я открываю их все в таком порядке как вкладки. Итак, мой порядок вкладок такой:

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

Тогда давайте предположим, что я хочу вместо этого изменить порядок своих вкладок так, чтобы это было file2.txtраньше file1.txt:

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

Как мне это сделать? Есть ли команда Vim для перемещения текущей вкладки влево или вправо, или иным образом изменить порядок открытых в настоящее время вкладок?

Сэм Эстеп
источник

Ответы:

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 arrowи Leader+, Left arrowвозможно, они могут быть полезны для вас.

Изменить: как @TomMcDo указал в комментариях, предыдущие отображения могут быть упрощены и по-прежнему работать должным образом:

noremap <Leader><Left>  :tabmove -1<CR>
noremap <Leader><Right> :tabmove +1<CR>
statox
источник
3
В ваших отображениях, почему бы не использовать :tabmove -1и :tabmove +1?
Tommcdo
@tommcdo: Ну ... я сделал эти сопоставления несколько месяцев назад, и я понятия не имею, что у меня на уме в этот момент. И я не случайно подумал об этом, когда скопировал его в ответ. В любом случае, вы совершенно правы, я отредактирую свой ответ, чтобы сделать его проще, спасибо за заголовок :-)
statox