2012-07-03 7 views
24

Io spesso elaboro file lunghi in vim che hanno blocchi di codice in più punti disparati nel file in cui ho bisogno di andare continuamente avanti e indietro. Ovviamente, un modo per risolverlo è dividere la finestra con: dividere e modificare ogni porzione in una finestra divisa differente, e uno :w in ciascuna finestra salverà l'intero file. Questo è buono e buono se si dispone di uno schermo abbastanza grande, ma a volte devo usare vim su un laptop a bassa risoluzione e non voglio ridurre ulteriormente lo spazio sullo schermo suddividendo la finestra.Come modificare lo stesso file in più schede in vim?

In questo caso, ciò che mi piacerebbe davvero fare è modificare il file in più schede e trattare ciascuna scheda separata esattamente come una divisione di vista separata. Posso simularlo usando :tabopen <the same filename> dopo aver aperto una copia del file, ma questa è una specie di hacky - non funziona se ho già apportato modifiche al file perché vim pensa che sto solo aprendo il presentare una seconda volta.

C'è un buon modo per ottenere il comportamento che voglio con le schede in vim?

+4

Un altro modo di farlo è per contrassegnare luoghi del file con 'ma',' mb', ecc e restituire ai luoghi con ' 'a',' 'b', ecc. –

risposta

28

Il comando :tab accetta un comando come argomento.

Così si può fare questo:

:tab split 

Questo funzionerà anche se il buffer viene modificato, e un salvataggio in entrambe le schede salva il file, l'aggiornamento lo stato salvato in entrambi.

+8

Oppure ': tab sp' in breve – Conner

7

È possibile utilizzare il comando :tab:

:[count]tab {cmd}` 

Eseguire {cmd} e quando si apre una nuova finestra aprire una nuova scheda, invece. [...] Quando viene omesso il numero [count], la scheda viene visualizzata dopo quella corrente. Quando viene specificato il numero [count], la nuova scheda viene fornita dopo la pagina scheda [count]. Utilizzare :0tab cmd per ottenere la nuova scheda come prima.

Esempi:

:tab split   " opens the current buffer in new tab page 
:tab help gt   " opens tab page with help for "gt" 
Problemi correlati