¿Cómo reordenar las pestañas abiertas?

16

Digamos que tengo cuatro archivos abiertos: file0.txt, file1.txt, file2.txt, y file3.txt. Los abro todos en ese orden como pestañas. Entonces, mi orden de pestañas es este:

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

Entonces, digamos que quiero reordenar mis pestañas para que eso file2.txtocurra antes file1.txt:

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

¿Cómo puedo hacer eso? ¿Existe un comando Vim para mover la pestaña actual a la izquierda o derecha, o reordenar las pestañas abiertas actualmente?

Sam Estep
fuente

Respuestas:

18

Puedes usar el tabmovecomando. ( :help tabmovele dirá todo lo que necesita saber)

El comando toma dos tipos de parámetros:

Un signo ( +o -) seguido de un número:

  • :tabmove +2 moverá su pestaña de 2 lugares a la derecha
  • :tabmove -2 hará lo mismo a la izquierda.

También puede usar el comando con un número simple para establecer la posición de la pestaña:

  • :tabmove 0 pondrá la pestaña como la primera
  • :tabmove 2 pondrá la pestaña en la tercera posición
  • :tabmove pondrá la pestaña como la última

También puse esas líneas en mi .vimrc

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

Le permiten mover la pestaña actual de un lugar con la combinación Leader+ Right arrowy Leader+ Left arrowtal vez podrían serle útiles.

Editar: como @TomMcDo señaló en los comentarios, las asignaciones anteriores podrían simplificarse y seguir funcionando correctamente:

noremap <Leader><Left>  :tabmove -1<CR>
noremap <Leader><Right> :tabmove +1<CR>
statox
fuente
3
En sus asignaciones, ¿por qué no usar :tabmove -1y :tabmove +1?
tommcdo
@tommcdo: Bueno ... Hice esas asignaciones hace varios meses y no tengo idea de lo que estaba pensando en este momento. Y no pensé en el evento cuando lo copié en mi respuesta. De todos modos, tienes toda la razón, editaré mi respuesta para que sea más simple, gracias por el título :-)
statox