Linux vi-commando's: de 3 modi van Vim en de visuele modus

vi openen en merken dat er niets verschijnt als je typt, of het venster sluiten omdat je niet weet hoe je eruit komt: bijna iedereen die voor het eerst een server aanraakt, maakt dat een keer mee. Het Linux-commando vi heeft een aparte normale modus en invoegmodus, dus zodra je weet in welke modus je zit, is de rest een paar toetsen. Dit artikel zet de drie modi en de commando's per modus in tabellen, en je kunt vi zelf typen op een virtuele server in je browser.
Op AlmaLinux 9.8 komen vi en vim allebei uit het pakket vim 8.2, en de schermen en meldingen in dit artikel zijn met vim geopend. Is het niet geïnstalleerd, installeer het dan met [dnf -y install vim-enhanced].
✅ De drie modi van vi
In vi doet dezelfde toets iets anders afhankelijk van de modus. Een bestand opent in de normale modus; met i ga je naar de invoegmodus om te typen, Esc brengt je terug, en een dubbele punt [:] brengt je naar de opdrachtregelmodus om op te slaan en af te sluiten.
| Modus | Toets om erin te komen | Taak |
|---|---|---|
| Normale modus | Waar vi start · Esc vanuit elke andere modus | Cursor verplaatsen, verwijderen, kopiëren, plakken, ongedaan maken |
| Invoegmodus | i a I A o O | Tekst typen. [-- INSERT --] onderaan het scherm |
| Opdrachtregelmodus | : | Opslaan, afsluiten, vervangen, regelnummers. Onderaan het scherm verschijnt een : |
| Visuele modus | v V Ctrl-v | Een bereik selecteren en dan op alle regels verwijderen, kopiëren of invoegen |
Er zijn drie manieren om een bestand vanuit de console te openen.
| Commando | Uitleg |
|---|---|
| vi bestandsnaam | Opent het bestand in de normale modus. Bestaat het niet, dan wordt het aangemaakt en verschijnt [New] |
| vi +20 bestandsnaam | Opent met de cursor op regel 20 |
| view bestandsnaam= vi -R | Opent alleen-lezen. Bewerken geeft een waarschuwing [W10], opslaan geeft [E45] |
Typ [vi httpd.conf] op de virtuele server hieronder om vi te openen; het menu links schakelt dan over naar commando's binnen vi. Klik op een chip om die toets naar het scherm te sturen, of typ hem op je toetsenbord.
✅ Overzicht van Linux vi-commando's
🔲 Cursor verplaatsen
| Toets | Uitleg |
|---|---|
| h j k l← ↓ ↑ → | Eén teken verplaatsen. Pijltjestoetsen werken ook |
| 0 · ^ | Begin van de regel (0) · eerste teken dat geen spatie is (^) |
| $ | Einde van de regel |
| w · b · e | Begin van het volgende woord · begin van het vorige woord · einde van het volgende woord |
| gg · G | Eerste regel · laatste regel van het bestand |
| 20Ggelijk aan :20 | Naar regel 20. Verander het getal voor een andere regel |
| H · M · L | Bovenste · middelste · onderste regel van het scherm |
| Ctrl-f · Ctrl-b | Eén scherm omlaag · omhoog |
| Ctrl-d · Ctrl-u | Half scherm omlaag · omhoog |
🔲 Naar de invoegmodus
Met welke toets je er ook in komt, druk op Esc als je klaar bent met typen. cw, cc, C en s verwijderen en zetten je meteen in de invoegmodus, dus een woord of regel verbeteren gaat sneller dan x en i apart indrukken.
| Toets | Uitleg |
|---|---|
| i · a | Typen vóór (i) · na (a) de cursor |
| I · A | Typen aan het begin (I) · einde (A) van de regel |
| o · O | Een lege regel eronder (o) · erboven (O) openen en typen |
| cw | Van de cursor tot het einde van het woord verwijderen en typen |
| cc | De hele regel verwijderen en typen |
| C | Van de cursor tot het einde van de regel verwijderen en typen |
| s | Eén teken verwijderen en typen |
| Esc | Stoppen met typen en terug naar de normale modus |
🔲 Verwijderen en bewerken
Zet een bewegingstoets achter d en dat bereik wordt verwijderd. dw verwijdert een woord, dd een regel, dG alles tot het einde van het bestand, en een getal ervoor herhaalt het zo vaak.
| Toets | Uitleg |
|---|---|
| x · X | Teken onder (x) · vóór (X) de cursor verwijderen. 3x verwijdert drie |
| dw | Van de cursor tot het einde van het woord verwijderen |
| dd | Regel verwijderen. 3dd verwijdert drie regels |
| D= d$ | Van de cursor tot het einde van de regel verwijderen |
| d0 | Van het begin van de regel tot de cursor verwijderen |
| dG | Van de huidige regel tot het einde van het bestand verwijderen |
| :6d · :6,10d | Regel 6 verwijderen · regels 6–10 verwijderen |
| J | De volgende regel aan het einde van de huidige regel plakken |
| r | Het teken onder de cursor vervangen door de volgende toets die je typt |
| ~ | Hoofd-/kleine letter wisselen |
| >> · << | Regel inspringen · uitspringen |
🔲 Kopiëren, plakken en ongedaan maken
Verwijderde tekst kun je net als gekopieerde tekst met p plakken, dus dd en dan p verplaatst een regel omlaag. u gaat meerdere wijzigingen terug, en Ctrl-r voert opnieuw uit wat je ongedaan hebt gemaakt.
| Toets | Uitleg |
|---|---|
| yy | Regel kopiëren. 3yy kopieert drie regels |
| yw | Van de cursor tot het einde van het woord kopiëren |
| p · P | Plakken eronder (p) · erboven (P). Bij kopiëren per teken: na · vóór de cursor |
| :1 co 7gelijk aan :1 t 7 | Regel 1 kopiëren onder regel 7 |
| :1,7 co 8 | Regels 1–7 kopiëren onder regel 8 |
| :1 m 8 | Regel 1 verplaatsen onder regel 8 |
| u | Ongedaan maken. Nog eens indrukken om verder terug te gaan |
| Ctrl-r | Opnieuw uitvoeren wat je ongedaan hebt gemaakt |
| . | De laatste wijziging herhalen |
🔲 Zoeken en vervangen
Vervangen gebeurt in de opdrachtregelmodus. Zonder bereik geldt het alleen voor de huidige regel, [%] dekt het hele bestand, en zonder g aan het eind verandert alleen de eerste overeenkomst op elke regel.
| Toets | Uitleg |
|---|---|
| /tekst | Omlaag zoeken vanaf de cursor. Aan het eind gaat het verder bovenaan: [search hit BOTTOM, continuing at TOP] |
| ?tekst | Omhoog zoeken vanaf de cursor |
| n · N | Volgende overeenkomst in dezelfde richting (n) · tegengestelde richting (N) |
| * | Omlaag zoeken naar het woord onder de cursor |
| :s/old/new/ | Eerste old op de huidige regel naar new |
| :s/old/new/g | Elke old op de huidige regel naar new |
| :%s/old/new/g | Elke old in het hele bestand naar new |
| :10,20s/old/new/g | Elke old op de regels 10–20 naar new |
| :%s/old/new/gc | Vóór elke wijziging vragen (y wijzigen · n overslaan · a alles · q stoppen) |
🔲 Opslaan, afsluiten en regelnummers
| Toets | Uitleg |
|---|---|
| :w | Opslaan. Na afloop: [36L, 1094B written] |
| :w bestandsnaam | Onder een andere naam opslaan. Het originele bestand blijft zoals het is |
| :wq= :x = ZZ | Opslaan en afsluiten |
| :q | Afsluiten. Zijn er niet-opgeslagen wijzigingen: [E37: No write since last change] |
| :q! | Afsluiten zonder op te slaan |
| :set nu · :set nonu | Regelnummers tonen · verbergen |
✅ Een kolom uitcommentariëren met de visuele blokmodus van Vim
Om dezelfde tekst aan het begin van meerdere regels te zetten, gebruik je de visuele blokmodus in plaats van op elke regel i te drukken. In de normale modus selecteert v per teken, Shift-v per regel en Ctrl-v per kolom.
Zo zet je een heel blok van een configuratiebestand in commentaar. Zet de cursor op het eerste teken van de eerste regel, druk op Ctrl-v, ga met j omlaag om de regels te selecteren, druk dan op I, typ # en druk op Esc.



Het commentaar weghalen werkt op dezelfde manier. Zet de cursor op de # van de eerste regel, selecteer omlaag met Ctrl-v, druk op x en de geselecteerde kolom is in één keer weg. Je kunt het zo proberen op vhost.conf in de simulator hierboven.
ℹ️ Affiliatemelding
De content van deze site bevat affiliatelinks. Koopt een bezoeker via een van deze links een product of dienst, dan ontvangt deze site een commissie van de verkoper. Het bedrag dat de koper betaalt (bij acties gaat het omlaag ↓) wordt daardoor niet hoger. De vermelde prijzen, kortingen en voorraad gelden op het moment van schrijven en kunnen afwijken; controleer ze daarom vóór je aankoop bij de verkoper. Producten worden gekozen en beoordeeld volgens onze eigen criteria, en commissies hebben geen invloed op de volgorde of de inhoud van de beoordelingen.