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 :ls
e :b [name or number of buffer]
invece ho creato alcuni comodi mapping che mi permettono di passare da un buffer all'altro con :bnext
e:bprevious
Questo modo di lavorare è abbastanza buono ma qualcosa mi disturba: i buffer sono condivisi tra le schede.
Se apro file1
e file2
dentro tab1
e file3
dentro tab2
, se in tab1
uso più volte :bnext
vedrò file3
in 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
:bnext
o:bprevious
rimarrò nelbaz
buffer (poiché è l'unico in questa scheda) - Se vado nella scheda precedente
:tabprevious
ed eseguo più volte:bnext
passerò solo dafoo
ebar
buffer 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.