Quando devo lavorare su diversi progetti contemporaneamente ho il seguente flusso di lavoro:
- Creo una scheda per ogni progetto.
- In ogni scheda apro i file che voglio modificare, il che rende diversi buffer.
- Opzionalmente se ho bisogno di vedere due (o più) file contemporaneamente creo finestre divise, quindi ho una scheda contenente finestre diverse che mostra un buffer.
Per navigare tra i miei buffer non uso davvero :lse :b [name or number of buffer]invece ho creato alcuni comodi mapping che mi permettono di passare da un buffer all'altro con :bnexte:bprevious
Questo modo di lavorare è abbastanza buono ma qualcosa mi disturba: i buffer sono condivisi tra le schede.
Se apro file1e file2dentro tab1e file3dentro tab2, se in tab1uso più volte :bnextvedrò file3in questa scheda che non voglio. Il flusso di lavoro che vorrei ottenere è il folowing :
- Inizia vim (ho una prima scheda con un buffer):
$ vim foo - Aggiungi un buffer a questa scheda:
:e bar - Apri una nuova scheda e passa ad essa:
:tabnew - Apri un nuovo buffer in questa scheda:
:e baz - Se rimango in questo buffer e lo faccio
:bnexto:bpreviousrimarrò nelbazbuffer (poiché è l'unico in questa scheda) - Se vado nella scheda precedente
:tabprevioused eseguo più volte:bnextpasserò solo dafooebarbuffer ma non vedròbaz
Quindi ecco la mia domanda: è possibile associare un set di buffer a una scheda e fare in modo che vim non consenta l'accesso ad alcuni buffer da un'altra scheda rispetto a quella in cui si intende trovarsi?
Nota: sono consapevole che l'utilizzo :b [myBuffer]sarebbe un modo per mantenere un buffer in una scheda, ma quando ho 3 o 4 file da modificare mi sembra di essere molto più veloce nell'usare i miei mapping piuttosto che digitare il nome del buffer (anche se posso digitare solo alcuni caratteri per abbinare il nome del buffer) .
alt+tab(o peggio il mouse) è molto meno facile che cambiare scheda all'interno di VIM.
