Jak zmienić kolejność otwartych kart?

16

Powiedzmy, że mam cztery otwarte pliki: file0.txt, file1.txt, file2.txt, i file3.txt. Wszystkie otwieram w tej kolejności jako zakładki. Moja kolejność zakładek to:

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

Powiedzmy, że chcę zamiast tego zmienić kolejność kart, tak aby było file2.txtwcześniej file1.txt:

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

Jak mogę to zrobić? Czy istnieje polecenie Vima, aby przesunąć bieżącą kartę w lewo lub w prawo, lub w inny sposób zmienić kolejność aktualnie otwartych kart?

Sam Estep
źródło

Odpowiedzi:

18

Możesz użyć tabmovepolecenia. ( :help tabmovepowie ci wszystko, co musisz wiedzieć)

Polecenie przyjmuje dwa rodzaje parametrów:

Znak ( +lub -), po którym następuje liczba:

  • :tabmove +2 przesunie twoją zakładkę o 2 miejsca w prawo
  • :tabmove -2 zrobi to samo po lewej stronie.

Możesz także użyć polecenia z prostą liczbą, aby ustawić pozycję karty:

  • :tabmove 0 umieści kartę jako pierwszą
  • :tabmove 2 umieści kartę w trzeciej pozycji
  • :tabmove umieści kartę jako ostatnią

Też wstawiłem te linie do siebie .vimrc

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

Pozwalają przenieść bieżącą kartę o jedno miejsce za pomocą kombinacji Leader+ Right arrowi Leader+, Left arrowbyć może mogą ci się przydać.

Edycja: Jak wskazał @TomMcDo w komentarzach, poprzednie mapowania można uprościć i nadal działać poprawnie:

noremap <Leader><Left>  :tabmove -1<CR>
noremap <Leader><Right> :tabmove +1<CR>
statox
źródło
3
W swoich mapowaniach dlaczego nie użyć :tabmove -1i :tabmove +1?
tommcdo
@tommcdo: Cóż ... Zrobiłem te mapowania kilka miesięcy temu i nie mam pojęcia, co miałem na myśli w tym momencie. I nawet nie pomyślałem o tym, kiedy skopiowałem to w mojej odpowiedzi. W każdym razie masz całkowitą rację,
zredaguję