Vim buffers, tabs en windows
Op deze pagina:
In Vim kun je meerdere bestanden via meerdere manieren open hebben staan. In het kort: in de buffers zitten je geopende bestanden, tabs zijn containers voor windows, een window is een schermdeel waar een bestand in te zien is dat in een buffer staat.
In je ~/.vimrc moet je deze regel opnemen om te zorgen dat je meer als één gewijzigd bestand open kan hebben:
set hidden
Buffers
Een buffer is een tekstbestand in het geheugen. Voor elk tekstbestand dat je in Vim opent wordt er een buffer gemaakt. Als je meerdere tekstbestanden opent, bijvoorbeeld met:
vim index.html contact.html nieuws.html
dan kun je de buffers opvragen via:
:ls
# of:
:buffers
# of:
:files
Wat wordt er bij de bufferregels aangegeven (buffer indicators):
% : buffer in het huidige window
# : alternatieve buffer, te verkrijgen via CTRL-6
a : actieve buffer, geladen en zichtbaar
h : hidden buffer, geladen, maar niet zichtbaar
- : een buffer die niet aangepast kan worden
= : een buffer die alleen lezen is
+ : een buffer die is aangepast
x : een buffer met schrijffouten
: geen buffer indicator betekent dat de buffer nog niet is geladen
Wisselen tussen de bestanden in de buffers kan met:
# naar de volgende buffer:
:bnext
# naar de vorige buffer
:bprev
# naar de buffer waarvan je de naam opgeeft:
:buffer naam_van_het_bestand
# naar de buffer waarvan je het nummer opgeeft
# in dit voorbeeld buffer nummer 3:
:buffer3
# of:
:b3
Wisselen met het vorige bestand kan met Ctrl en ^ (dakje, meestal de 6-toets).
Als een buffer is geopend, dan blijft deze in je bufferlijst.
Een buffer sluiten kan met:
# buffer nummer 3 sluiten:
:bdelete3
Alle buffers openen in windows:
:ball
Windows
Een window is een kijkvenster op een buffer. In Vim kun je meerdere windows geopend hebben.
Een nieuw window aanmaken met horizontale splitsing, een bestandsnaam is optioneel:
:new index.html
Een nieuw window aanmaken met verticale splitsing, een bestandsnaam is optioneel:
:vnew index.html
Een window splitsen (bestandsnaam is optioneel):
# horizontaal:
:split index.html
# verticaal:
:vsplit index.html
Een nieuw bestand openen en in een window plaatsen:
:edit index.html
Een window sluiten:
:q
Navigeren tussen windows:
naar windows links: Ctrl + w h
naar window rechts: Ctrl + w l
naar window beneden: Ctrl + w j
naar window boven: Ctrl + w k
Tabs
In veel teksteditors is een tab een open bestand. In Vim is een tab een verzameling windows. Als je een tab sluit in Vim, dan staan de bestanden nog steeds in de buffers.
Een nieuwe tab openen:
:tabnew bestandsnaam
Een tab sluiten:
:tabclose
Navigeren met tabs:
# naar de volgende tab
:tabnext
# naar de vorige tab
:tabprevious
# naar de laatste tab
:tablast
# naar de eerste tab
:tabfirst
Vim starten met meerdere tabs:
vim -p index.html contact.html nieuws.html