Wie kann ich offene Tabs neu anordnen?

16

Lassen Sie uns sagen , ich habe vier geöffneten Dateien: file0.txt, file1.txt, file2.txt, und file3.txt. Ich öffne sie alle in dieser Reihenfolge als Registerkarten. Meine Tab-Reihenfolge lautet also:

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

Dann lassen Sie uns sagen , dass ich stattdessen Neuordnungs meine Tabs wollen , so dass file2.txtvor kommt file1.txt:

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

Wie mache ich das? Gibt es einen Vim-Befehl, um die aktuelle Registerkarte nach links oder rechts zu verschieben oder die aktuell geöffneten Registerkarten auf andere Weise neu anzuordnen?

Sam Estep
quelle

Antworten:

18

Sie können den tabmoveBefehl verwenden. ( :help tabmovesagt dir alles was du wissen musst)

Der Befehl akzeptiert zwei Arten von Parametern:

Ein Zeichen ( +oder -) gefolgt von einer Nummer:

  • :tabmove +2 Verschiebt den Tab um 2 Stellen nach rechts
  • :tabmove -2 wird das gleiche auf der linken Seite tun.

Sie können den Befehl auch mit einer einfachen Zahl verwenden, um die Position der Registerkarte festzulegen:

  • :tabmove 0 Legt die Registerkarte als erste fest
  • :tabmove 2 Bringt den Reiter in die dritte Position
  • :tabmove Legt die Registerkarte als letzte fest

Auch ich stecke diese Zeilen in meine .vimrc

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

Sie ermöglichen es Ihnen, den aktuellen Tab mit der Kombination Leader+ Right arrowund Leader+ um eine Stelle zu verschieben. Left arrowVielleicht könnten sie für Sie nützlich sein.

Edit: Wie @TomMcDo in den Kommentaren hervorhob, konnten die vorherigen Zuordnungen vereinfacht werden und funktionieren immer noch einwandfrei:

noremap <Leader><Left>  :tabmove -1<CR>
noremap <Leader><Right> :tabmove +1<CR>
statox
quelle
3
In Ihren Mappings, warum nicht verwenden :tabmove -1und :tabmove +1?
tommcdo
@tommcdo: Nun ... Ich habe diese Zuordnungen vor einigen Monaten gemacht und ich habe keine Ahnung, was in diesem Moment in meinem Kopf war. Und ich habe mir keine Gedanken darüber gemacht, als ich es in meine Antwort kopierte. Wie auch immer, Sie haben völlig Recht, ich werde meine Antwort
ändern