2010-07-21 9 views
11

Sono in procinto di imparare Vim e ho appena saputo dei marchi. Prima di ciò ho trovato utile avere tutti i file di codice sorgente su cui sto lavorando nelle proprie schede. Quando ho scoperto i marchi "globali" (maiuscole) ho pensato che sarebbe stato un ottimo modo per passare a una scheda che ha già il file contrassegnato aperto e scorrere fino al punto corretto in un modo rapido. Tuttavia, ho scoperto che saltare a un segno in un file diverso cambia semplicemente il file che sta visualizzando la scheda corrente, e questo confonde la configurazione delle mie schede. C'è un modo per far funzionare i segni con le schede nel modo che voglio?Vim: i contrassegni globali possono passare le schede anziché il file nella scheda corrente?

+0

Sembra che non dovrebbe funzionare in questo modo. Potrei anche solo usare i buffer, credo. – Eskil

+1

Vedi [questo] (http://stackoverflow.com/questions/102384/using-vims-tabs-like-buffers) domanda e risposta, speriamo che facciano andare questa domanda :) –

risposta

3

Il problema è che i comandi di salto del contrassegno sono progettati per passare al marchio all'interno della finestra corrente. È necessario passare a una nuova finestra prima utilizzando :sbuf o :tabnext o CTRL + WW. Se hai impostato switchbuf=useopen,usetab quindi utilizzando :sbuf <otherfile> per prima cosa sarà sufficiente passare all'altra scheda in cui è aperto il file. Ma 'A non creerà una nuova finestra per te (o riutilizzerà una esistente in un'altra scheda).

Probabilmente si può creare una mappatura per ' e `` which uses getpos() , setpos() ,: SBUF , and switchbuf` per passare a una finestra esistente in un'altra scheda, ma si tratterebbe di scrivere una pagina di vimscript.

Vedere :help switchbuf e :help getpos() e :help setpos().

1

Le schede potrebbero non essere il modo migliore per fare ciò che si sta tentando di fare. Quando un file è aperto, non è necessariamente aperto in una sola scheda. È aperto in un buffer, che è un concetto non legato a una scheda.

Infatti, è possibile avere lo stesso buffer aperto in più schede (o anche più riquadri all'interno della stessa scheda). Una scheda è più simile a una finestra in uno o più dei buffer attualmente aperti.

Potrebbe essere meglio imparare come passare da un buffer all'altro nella scheda o nel pannello corrente. Solo un suggerimento.

Problemi correlati