complete vim cheatsheet nederlands

vim en vi cheatsheet voor gevorderden: alle commando’s en trucs

Je kent de basis van Vim — bestanden openen, typen, opslaan. Deze cheatsheet gaat verder: sneller navigeren, efficiënter bewerken, macro’s opnemen en productiviteitstips voor dagelijks gebruik op servers en tijdens examens.

⌨️ Modi — volledig overzicht

i          Insert vóór cursor
I          Insert aan begin van regel
a          Insert na cursor
A          Insert aan einde van regel
o          Nieuwe regel onder + Insert
O          Nieuwe regel boven + Insert
s          Verwijder karakter + Insert
S          Verwijder hele regel + Insert
R          Replace mode (overschrijven)
v          Visual mode (karakterselectie)
V          Visual Line mode (regelselectie)
Ctrl+v     Visual Block mode (kolomselectie)
:          Command mode
Esc        Terug naar Normal mode

🚀 Geavanceerde navigatie

# Basisbeweging
h j k l    Links / omlaag / omhoog / rechts
0          Begin van regel (incl. spaties)
^          Eerste niet-spatie van regel
$          Einde van regel
gg         Begin van bestand
G          Einde van bestand
:42        Naar regel 42
50%        Naar 50% van het bestand

# Woorden
w          Begin van volgend woord
W          Begin van volgend WOORD (spatie-gescheiden)
b          Begin van vorig woord
e          Einde van huidig woord
ge         Einde van vorig woord

# Zinnen en alinea's
(          Begin van vorige zin
)          Begin van volgende zin
{          Begin van vorig paragraaf
}          Begin van volgend paragraaf

# Scherm
H          Eerste regel van scherm
M          Middelste regel van scherm
L          Laatste regel van scherm
Ctrl+f     Pagina omlaag
Ctrl+b     Pagina omhoog
Ctrl+d     Halve pagina omlaag
Ctrl+u     Halve pagina omhoog
zz         Huidige regel centreren op scherm

# Naar karakter springen
f{char}    Naar volgend voorkomen van karakter
F{char}    Naar vorig voorkomen
t{char}    Tot vóór volgend karakter
T{char}    Tot vóór vorig karakter
;          Herhaal laatste f/F/t/T
,          Herhaal in tegengestelde richting

# Matching bracket
%          Spring naar bijbehorend haakje ( ) [ ] { }

✂️ Bewerken — operators en bewegingen

Vim’s kracht zit in combinaties van operator + beweging. Eens je dit doorhebt gaat alles sneller.

# Patroon: [aantal] operator beweging
# d = delete, c = change, y = yank, > = indent

d$         Verwijder tot einde van regel
d0         Verwijder tot begin van regel
dw         Verwijder woord
d3w        Verwijder 3 woorden
diw        Verwijder woord (ook als cursor midden in woord staat)
dip        Verwijder paragraaf
di"        Verwijder inhoud tussen aanhalingstekens
di(        Verwijder inhoud tussen haakjes
di{        Verwijder inhoud tussen accolades

# Change (verwijderen + direct Insert mode)
cw         Verander woord
c$         Verander tot einde van regel
ciw        Verander woord (cursor anywhere in woord)
ci"        Verander inhoud tussen aanhalingstekens
ci(        Verander inhoud tussen haakjes

# Yank (kopiëren)
yy         Kopieer hele regel
y$         Kopieer tot einde van regel
yiw        Kopieer woord
y3j        Kopieer huidige + 3 regels omlaag

# Indent
>>         Inspringen (één niveau)
<<         Uitspringen
=          Auto-indent (selectie in Visual mode)
=G         Auto-indent van cursor tot einde bestand

📋 Registers (meerdere clipboards)

# Vim heeft 26 named registers (a-z) + systeem clipboard
"ayy       Kopieer regel naar register a
"ap        Plak uit register a
"byiw      Kopieer woord naar register b

# Systeem clipboard (werkt als xclip/xsel beschikbaar is)
"+yy       Kopieer naar systeem clipboard
"+p        Plak vanuit systeem clipboard

# Bekijk inhoud van registers
:registers
:reg a b   Bekijk registers a en b

# Speciale registers
"0         Laatste yank (niet overschreven door delete)
"_         Blackhole register (verwijder zonder clipboard)

🔍 Zoeken en vervangen — geavanceerd

# Zoeken
/patroon       Zoeken vooruit
?patroon       Zoeken achteruit
n              Volgende resultaat
N              Vorig resultaat
*              Zoek naar woord onder cursor (vooruit)
#              Zoek naar woord onder cursor (achteruit)

# Vervangen (substitute)
:%s/oud/nieuw/g       Vervang alles in bestand
:%s/oud/nieuw/gi      Hoofdletterongevoelig
:%s/oud/nieuw/gc      Met bevestiging per geval
:10,20s/oud/nieuw/g   Alleen regels 10-20
:'<,'>s/oud/nieuw/g   Alleen in Visual selectie

# Reguliere expressies
:%s/\bwoord\b/nieuw/g    Heel woord (word boundary)
:%s/^/# /g               Voeg # toe aan begin elke regel
:%s/ *$//g               Verwijder spaties aan einde regels
:%s/\t/  /g              Vervang tabs door 2 spaties

# Zoekopties
:set ignorecase    Hoofdletterongevoelig zoeken
:set smartcase     Hoofdlettergevoelig als zoekterm hoofdletter bevat
:set hlsearch      Zoekresultaten markeren
:nohlsearch        Markering verwijderen

📁 Meerdere bestanden en vensters

# Bestanden
:e bestand.yaml        Ander bestand openen
:bn                    Volgend buffer
:bp                    Vorig buffer
:ls                    Alle open buffers tonen
:b2                    Naar buffer 2

# Gesplitste vensters
:split bestand.yaml    Horizontaal splitsen
:vsplit bestand.yaml   Verticaal splitsen
Ctrl+w h/j/k/l        Navigeren tussen vensters
Ctrl+w w              Volgend venster
Ctrl+w =              Gelijke grootte
Ctrl+w _              Huidig venster maximaliseren
:close                 Huidig venster sluiten
:only                  Alle andere vensters sluiten

# Tabs
:tabnew bestand.yaml   Nieuw tab
:tabn                  Volgend tab
:tabp                  Vorig tab
gt                     Volgend tab (Normal mode)
gT                     Vorig tab

⏺ Macro’s opnemen

Macro’s zijn opgenomen reeksen van toetsaanslagen die je kunt herhalen. Ideaal voor repetitieve bewerkingen.

# Macro opnemen
qa         Start opname in register a
           (voer nu je bewerkingen uit)
q          Stop opname

# Macro afspelen
@a         Voer macro a uit
@@         Herhaal laatste macro
10@a       Macro a 10 keer uitvoeren

# Voorbeeld: voeg commentaar toe aan 50 regels
# 1. Ga naar eerste regel
# 2. qa (start opname)
# 3. I# Esc (voeg # in aan begin)
# 4. j (naar volgende regel)
# 5. q (stop opname)
# 6. 49@a (herhaal 49 keer)

🔢 Nummers en tellen

Ctrl+a     Verhoog getal onder cursor met 1
Ctrl+x     Verlaag getal onder cursor met 1
10Ctrl+a   Verhoog getal met 10
g Ctrl+a   Verhoog reeks getallen in selectie (oplopend)

📌 Markeringen (bookmarks)

ma         Stel markering a in op huidige positie
`a         Spring naar exacte positie van markering a
'a         Spring naar begin van regel met markering a
''         Spring terug naar vorige positie
`.         Spring naar laatste wijziging
:marks     Toon alle markeringen

⚙️ Configuratie (.vimrc)

Zet dit in ~/.vimrc voor een prettige werkomgeving bij Red Hat examens:

" Basisinstellingen
set number              " Regelnummers
set relativenumber      " Relatieve nummers (handig voor bewegingen)
set expandtab           " Tabs naar spaties
set tabstop=2           " Tab = 2 spaties
set shiftwidth=2        " Inspringing = 2 spaties
set autoindent          " Automatisch inspringen
set smartindent         " Slim inspringen

" Zoeken
set ignorecase          " Hoofdletterongevoelig
set smartcase           " Tenzij hoofdletter in zoekterm
set hlsearch            " Markeer zoekresultaten
set incsearch           " Live zoeken tijdens typen

" Weergave
set syntax=on           " Syntaxkleuring
set showcmd             " Huidig commando tonen
set showmatch           " Bijbehorend haakje markeren
set ruler               " Cursorpositie tonen
set scrolloff=5         " Altijd 5 regels zichtbaar boven/onder cursor

" Handige snelkoppelingen
nnoremap n :set number!    " Toggle regelnummers
nnoremap  /                      " Spatie = zoeken

🛠 Handige commando’s voor servers

:r !commando       Voeg output van shell-commando in
:r bestand         Voeg inhoud van bestand in
:! commando        Voer shell-commando uit (zonder vim te verlaten)
:shell             Open tijdelijke shell (exit om terug te keren)

# Sorteren
:sort              Sorteer regels alfabetisch
:sort!             Sorteer omgekeerd
:sort n            Sorteer numeriek

# Verwijder lege regels
:g/^$/d

# Verwijder regels die patroon bevatten
:g/patroon/d

# Behoud alleen regels die patroon bevatten
:v/patroon/d

# Regelopmaak
:set textwidth=80  Automatisch afbreken na 80 tekens
gq}               Herformateer paragraaf

⚡ Snelste manieren voor veelvoorkomende taken

# Hele bestand kopiëren
ggVGy      (gg = begin, V = visual line, G = einde, y = yank)

# Alle regels nummeren
:%s/^/\=line('.').' '/

# Dupliceer huidige regel
yyp

# Wissel twee regels om
ddp

# Maak een woord hoofdletter
gUiw       (g = operator, U = uppercase, iw = inner word)
guiw       (lowercase)
g~iw       (toggle case)

# Voeg iets toe aan einde van elke regel (Visual Block)
Ctrl+v → G → $ → A → typ → Esc

# Verwijder eerste karakter van elke regel
:%s/^.//

⚡ Examentips (Red Hat)

  • Maak een ~/.vimrc aan het begin van het examen met de YAML-instellingen — dit scheelt veel fouten
  • u en Ctrl+r zijn je beste vrienden — geen paniek bij fouten
  • :%s/\t/ /g redt je als je per ongeluk echte tabs in YAML hebt getypt
  • :set paste inschakelen vóór plakken vanuit clipboard — voorkomt auto-indent problemen
  • :set nopaste daarna weer uitschakelen
  • Gebruik % om te verifiëren dat accolades en haakjes in YAML/JSON gesloten zijn