Comment réorganiser les onglets ouverts?

16

Disons que j'ai quatre fichiers ouverts: file0.txt, file1.txt, file2.txtet file3.txt. Je les ouvre tous dans cet ordre sous forme d'onglets. Mon ordre de tabulation est donc le suivant:

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

Supposons ensuite que je souhaite réorganiser mes onglets à la place, ce qui file2.txtprécède file1.txt:

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

Comment je fais ça? Existe-t-il une commande Vim pour déplacer l'onglet actuel vers la gauche ou la droite, ou réorganiser autrement les onglets actuellement ouverts?

Sam Estep
la source

Réponses:

18

Vous pouvez utiliser la tabmovecommande. ( :help tabmovevous dira tout ce que vous devez savoir)

La commande prend deux types de paramètres:

Un signe ( +ou -) suivi d'un nombre:

  • :tabmove +2 déplacera votre onglet de 2 places vers la droite
  • :tabmove -2 fera de même vers la gauche.

Vous pouvez également utiliser la commande avec un numéro simple pour définir la position de l'onglet:

  • :tabmove 0 mettra l'onglet comme le premier
  • :tabmove 2 mettra l'onglet en troisième position
  • :tabmove mettra l'onglet comme le dernier

Je mets aussi ces lignes dans mon .vimrc

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

Ils vous permettent de déplacer l'onglet actuel d'un endroit avec la combinaison Leader+ Right arrowet Leader+ Left arrowpeut-être qu'ils pourraient vous être utiles.

Edit: Comme @TomMcDo l'a souligné dans les commentaires, les mappages précédents pourraient être simplifiés et fonctionner correctement:

noremap <Leader><Left>  :tabmove -1<CR>
noremap <Leader><Right> :tabmove +1<CR>
statox
la source
3
Dans vos mappages, pourquoi ne pas utiliser :tabmove -1et :tabmove +1?
tommcdo
@tommcdo: Eh bien ... j'ai fait ces mappages il y a plusieurs mois et je n'ai aucune idée de ce que je pensais en ce moment. Et je n'ai pas pensé à cela quand je l'ai copié dans ma réponse. Quoi qu'il en soit, vous avez tout à fait raison, je vais modifier ma réponse pour la rendre plus simple, merci pour la rubrique :-)
statox