vi gyorssegély

:q! kilépés mentés nélkül
:x kilépés mentéssel (= :wq)
:w file mentés más néven
u visszavonás (undo)
^R mégsem-visszavonás (redo)
. (pont) megismétli az utolsó parancsot

a A beszúrás kurzor után / sor végére (append)
i I beszúrás kurzor elé / sor elejére (insert)
o O sor után / elé
p P a vágólap tartalmát beszúrja az aktuális hely után / elé

kurzormozgatás
(egyúttal szövegegységet is jelent)

h j k l balra / le / fel / jobbra
H M L a képernyő elejére/közepére/végére
zz az aktuális sort a képernyő közepére
^d ^f fél / teljes képernyőt előre (down / forward)
^u ^b - vissza (up / backward)
G fájl végére
nG adott számú sorra (pl. 1G a fájl elejére)

szó / nagy szó

w W következő elejére (word)
e E következő végére (end)
b B előző elejére (backward)

előző / következő

( ) mondat
{ } bekezdés
0 | sor eleje
^ sor első nemüres karaktere
$ sor vége
+ következő sor első nemüres karaktere
- előző
fc tc a sor következő c karakterére / elé
, ; az előző f, t keresésből a következő / előző
/cc ?cc a szöveg következő / előző cc szövegére
n N az előző /, ? keresésből a következő / előző
% az aktuális zárójel párjára ugrik
# az aktuális szót keresi a szövegben


y c d másol / cserél / töröl
szövegegység után használhatók, vagy duplázva sorra vonatkoznak
a másolt / cserélt / törölt szöveg a vágólapra kerül


karakter:

x s r töröl / cserél / átír
a másolt / cserélt / törölt szöveg a vágólapra kerül
~ kis-nagybetű váltás


Általában a parancsok elé írt számmal jelezhetjük, hogy hányszor hajtsa végre, pl.
10dd 10 sort töröl
3cW 3 szót cserél
5) 5 mondatot ugrik előre
{d}G7p az aktuális bekezdést törli, majd 7-szer beírja a fájl végére
yy5p az aktuális sorból még ötöt beszúr
xp felcserél két karaktert


makró:

qc a c nevű makró rögzítése
@c a c nevű makró lejátszása


programok írásánál érdemes a tabulálást kisebbre választani, pl. 3 karakteresre:
:set ts=3
a ts a tabstop rövidítése, ha állandóra szeretnénk, be lehet írni a .vimrc-be:
echo 'set tabstop=3' >> ~/.vimrc
hasznos lehet még az autoindent:
:set ai
érdemes máshol is beállítani az eltolási értéket:
:set shiftwidth=3