In Paragraaf 9 heb ik laten zien hoe je tekst kunt selecteren in VIM. Selecteren is leuk, maar je moet er dan wel wat mee doen. Een van de dingen die je met geselecteerde tekst kunt doen is knippen of kopieeren en dan vervolgens ergens anders 1 of meedere keren plakken.
Om dit te kunnen doen moet de geselecteerde tekst eerst in een buffer geplaatst worden. Dit kan je vanuit command mode doen met de volgende toetsen.
y - De tekst wordt in een buffer geplaatst en het origineel blijft staan (kopieeren).
d - De tekst wordt in een buffer geplaatst en het ogigineel verwijdert (knippen).
Maar de tekst hoeft niet geselecteert te zijn om het in een buffer te plaatsen. Door eerst een blok te selecteren wordt het blok in een buffer geplaatst. Het kan ook anders:
yy - Plaatst de regel waarin de cursor staat in de buffer, en laat de regel staan (kopieeren).
dd - Plaatst de regel waarin de cursor staat in de buffer, en delete de regel (knippen)
y$ - Plaatst de tekst vanaf de cursor tot het einde van de regel in een buffer.
d$ of D - Verwijdert de tekst vanaf de cursor tot het einde van de regel en plaatst het in een buffer.
y^ - Plaatst de tekst vanaf de cursor tot het begin van de regel in een buffer.
d^ - Verwijdert de tekst vanaf de cursor tot het begin van de regel en plaatst het in een buffer.
De "^" en "$" zijn modifiers. Er zijn er nog meer, bv "w" voor een woord. Je zou ook nog getallen kunnen gebruiken om een bereik aan te geven.
Misschien heb je nu wel een deja vu ervaring. En dat kan kloppen. Het knippen van tekst is hetzelfde als het verwijderen van tekst. Alleen gaan we nu ook nog plakken.
Plakken is gemakkelijk, je moet alleen goed in de gaten houden waar de cursor staat en waar je ten opzichte van de cursor wilt plakken:
p - Plakt de inhoud van de buffer na de cursor.
P - Plakt de inhoud van de buffer voor de cursor.
Probeer het allemaal maar eens uit. Het klinkt allemaal moeilijker dan het is.
Nog even iets over buffers.
Er zijn namelijk meerdere buffers. Als je iets in een buffer stopt, dan stop je het altijd (als je tenminste niets anders opgeeft) in de meest recente buffer. Als je plakt zonder een buffer te benoemen, dan gebruik je ook weer de meest recente buffer. Tijdens het plakken kan je de buffer benoemen door "xp of "xP als commando te geven. De x staat voor het buffer nummer, de " is een onderdeel van het commando.
:help usr_04 (in gedeelte 04.5 en verder)