Globální
- :h[elp] klíčové slovo - otevřít nápovědu pro klíčové slovo
 - :sav[eas] soubor - uložit soubor jako
 - :clo[se] - zavřít aktuální panel
 - :ter[minal] - otevřít okno terminálu
 - K - otevřít manuál pro slovo pod kurzorem
 
Pohyb kurzoru
- h - přesunout kurzor doleva
 - j - přesunout kurzor dolů
 - k - přesunout kurzor nahoru
 - l - přesunout kurzor doprava
 - gj - přesunout kurzor dolů (víceřádkový text)
 - gk - přesunout kurzor nahoru (víceřádkový text)
 - H - přejít na horní část obrazovky
 - M - přejít do středu obrazovky
 - L - přejít na spodní část obrazovky
 - w - skok dopředu na začátek slova
 - W - skok dopředu na začátek slova (slova mohou obsahovat interpunkci)
 - e - skok dopředu na konec slova
 - E - skok dopředu na konec slova (slova mohou obsahovat interpunkci)
 - b - skok zpět na začátek slova
 - B - skok zpět na začátek slova (slova mohou obsahovat interpunkci)
 - ge - skok zpět na konec slova
 - gE - skok zpět na konec slova (slova mohou obsahovat interpunkci)
 - 
            % - přejít na odpovídající znak (výchozí podporované dvojice: '()', '{}', '[]' - pro více informací použijte 
:h matchpairsve vim) - 0 - přeskočit na začátek řádku
 - ^ - přeskočit na první neprázdný znak řádku
 - $ - přeskočit na konec řádku
 - g_ - přeskočit na poslední neprázdný znak řádku
 - gg - přejít na první řádek dokumentu
 - G - přejít na poslední řádek dokumentu
 - 5gg or 5G - přejít na řádek 5
 - gd - přejít na lokální deklaraci
 - gD - přejít na globální deklaraci
 - fx - přejít na další výskyt znaku x
 - tx - přejít před další výskyt znaku x
 - Fx - přejít na předchozí výskyt znaku x
 - Tx - přejít za předchozí výskyt znaku x
 - ; - opakovat předchozí pohyb f, t, F nebo T
 - , - opakovat předchozí pohyb f, t, F nebo T směrem zpět
 - } - skok na další odstavec (nebo funkci/blok, při editaci kódu)
 - { - skok na předchozí odstavec (nebo funkci/blok, při editaci kódu)
 - zz - vycentrovat kurzor na obrazovce
 - zt - umístit kurzor do horní části obrazovky
 - zb - umístit kurzor do spodní části obrazovky
 - Ctrl + e - posunout obrazovku o jeden řádek dolů (bez pohybu kurzoru)
 - Ctrl + y - posunout obrazovku o jeden řádek nahoru (bez pohybu kurzoru)
 - Ctrl + b - posun o jednu celou obrazovku zpět
 - Ctrl + f - posun o jednu celou obrazovku vpřed
 - Ctrl + d - posun o půl obrazovky vpřed
 - Ctrl + u - posun o půl obrazovky zpět
 
Režim vkládání - vkládání/připojování textu
- i - vložit před kurzor
 - I - vložit na začátek řádku
 - a - vložit (připojit) za kurzor
 - A - vložit (připojit) na konec řádku
 - o - přidat nový řádek pod aktuální řádek
 - O - přidat nový řádek nad aktuální řádek
 - ea - vložit (připojit) na konec slova
 - Ctrl + h - vymazat znak před kurzorem během režimu vkládání
 - Ctrl + w - vymažte slovo před kurzorem během režimu vkládání
 - Ctrl + j - začít nový řádek během režimu vkládání
 - Ctrl + t - odsadit (přesunout doprava) řádek o šířku posunu během režimu vkládání
 - Ctrl + d - zrušit odsazení (přesunout doleva) řádek o jednu šířku posunu během režimu vkládání
 - Ctrl + n - vložit (automatické dokončení) další shodu před kurzor během režimu vkládání
 - Ctrl + p - vložit (automatické dokončení) předchozí shodu před kurzor během režimu vkládání
 - Ctrl + rx - vložit obsah registru x
 - Ctrl + ox - Dočasně přejít do normálního režimu a zadat jeden příkaz x.
 - Esc or Ctrl + c - ukončit režim vkládání
 
Editace
- r - nahradit jeden znak.
 - R - nahradit více než jeden znak, dokud nestisknete ESC.
 - J - spojit řádek níže s aktuálním řádkem s jednou mezerou mezi nimi
 - gJ - spojit řádek níže s aktuálním řádkem bez mezery mezi nimi
 - gwip - přeformátovat odstavec
 - g~ - prohodit velká a malá písmena
 - gu - změnit na malá písmena
 - gU - změnit na velká písmena
 - cc - změnit (nahradit) celý řádek
 - c$ or C - změnit (nahradit) do konce řádku
 - ciw - změnit (nahradit) celé slovo
 - cw or ce - změnit (nahradit) do konce slova
 - s - smazat znak a nahradit text
 - S - smazat řádek a nahradit text (stejné jako cc)
 - xp - transponovat dvě písmena (smazat a vložit)
 - u - zpět
 - U - obnovit (vrátit zpět) poslední změněný řádek
 - Ctrl + r - vpřed
 - . - opakovat poslední příkaz
 
Označení textu (vizuální režim)
- v - spustit vizuální režim, označit řádky a poté provést příkaz (například y-yank)
 - V - spustit vizuální režim po řádcích
 - o - přesunout na druhý konec označené oblasti
 - Ctrl + v - spustit režim vizuálního bloku
 - O - přesunout do jiného rohu bloku
 - aw - označit slovo
 - ab - blok s ()
 - aB - blok s {}
 - at - blok se značkami <>
 - ib - vnitřní blok s ()
 - iB - vnitřní blok s {}
 - it - vnitřní blok se značkami <>
 - Esc or Ctrl + c - opustit vizuální režim
 
Vizuální příkazy
- > - posunout text doprava
 - < - posunout text doleva
 - y - yank (zkopírovat) označený text
 - d - smazat označený text
 - ~ - prohodit velká a malá písmena
 - u - změnit označený text na malá písmena
 - U - změnit označený text na velká písmena
 
Registry
- :reg[isters] - zobrazit obsah registrů
 - "xy - yank (zkopírovat) do registru x
 - "xp - vložit obsah registru x
 - "+y - yank (zkopírovat) do registru systémové schránky
 - "+p - vložit z registru systémové schránky
 
             0 - poslední yank
             " - nepojmenovaný registr, poslední smazání nebo yank
             % - aktuální název souboru
             # - alternativní název souboru
             * - obsah schránky (primární X11)
             + - obsah schránky (schránka X11)
             / - poslední vzor vyhledávání
             : - poslední příkazový řádek
             . - poslední vložený text
             - - poslední smazání (méně než řádek)
             = - expression register
             _ - black hole register
          
Značky a pozice
- :marks - seznam značek
 - ma - nastavit aktuální pozici pro značku A
 - `a - skok na pozici značky A
 - y`a - yank text na pozici značky A
 - `0 - přejít na pozici, kde byl Vim předtím ukončen
 - `" - přejít na pozici při poslední úpravě tohoto souboru
 - `. - přejít na pozici poslední změny v tomto souboru
 - `` - přejít na pozici před posledním skokem
 - :ju[mps] - seznam skoků
 - Ctrl + i - přejít na novější pozici v seznamu skoků
 - Ctrl + o - přejít na starší pozici v seznamu skoků
 - :changes - seznam změn
 - g, - přejít na novější pozici v seznamu změn
 - g; - přejít na starší pozici v seznamu změn
 - Ctrl + ] - skok na značku pod kurzorem
 
Makra
- qa - záznam makra a
 - q - zastavit záznam makra
 - @a - spustit makro a
 - @@ - zopakovat poslední spuštěné makro
 
Vyjmout a vložit
- yy - yank (zkopírovat) řádek
 - 2yy - yank (zkopírovat) 2 řádky
 - yw - yank (zkopírovat) znaky slova z pozice kurzoru na začátek dalšího slova
 - yiw - yank (zkopírovat) slovo pod kurzorem
 - yaw - yank (zkopírovat) slovo pod kurzorem a mezeru za ním nebo před ním
 - y$ or Y - yank (zkopírovat) na konec řádku
 - p - umístit (vložit) schránku za kurzor
 - P - umístit (vložit) před kurzor
 - gp - umístit (vložit) schránku za kurzor a ponechat kurzor za novým textem
 - gP - umístit (vložit) schránku před kurzor a ponechat kurzor za novým textem
 - dd - smazat (vyjmout) řádek
 - 2dd - smazat (vyjmout) 2 řádky
 - dw - smazat (vyjmout) znaky slova z pozice kurzoru na začátek dalšího slova
 - diw - smazat (vyjmout) slovo pod kurzorem
 - daw - smazat (vyjmout) slovo pod kurzorem a mezeru za ním nebo před ním
 - :3,5d - delete lines starting from 3 to 5
 
e.g.
            :.,$d - From the current line to the end of the file 
            :.,1d - From the current line to the beginning of the file 
            :10,1d - From the 10th line to the beginning of the file 
          
- :g/{pattern}/d - delete all lines containing pattern
 - :g!/{pattern}/d - delete all lines not containing pattern
 - d$ or D - smazat (vyjmout) na konec řádku
 - x - smazat (vyjmout) znak
 
Odsazení textu
- >> - odsadit (přesunout doprava) řádek o šířku jednoho posunu
 - << - zrušit odsazení (přesunout doleva) řádek o šířku jednoho posunu
 - >% - odsadit blok s () nebo {} (kurzor na závorce)
 - <% - de-indent a block with () or {} (cursor on brace)
 - >ib - odsadit vnitřní blok s ()
 - >at - odsadit blok s <> značkami
 - 3== - znovu odsadit 3 řádky
 - =% - znovu odsadit blok s () nebo {} (kurzor na závorce)
 - =iB - znovu odsadit vnitřní blok s {}
 - gg=G - znovu odsadit celou vyrovnávací paměť
 - ]p - vložit a upravit odsazení aktuálního řádku
 
Konec
- :w - zapsat (uložit) soubor, ale neukončovat
 - :w !sudo tee % - uložit aktuální soubor pomocí sudo
 - :wq or :x or ZZ - uložit a ukončit
 - :q - ukončit (selže, pokud existují neuložené změny)
 - :q! or ZQ - ukončit a zahodit neuložené změny
 - :wqa - uložit a ukončit na všech záložkách
 
Hledat a nahradit
- /pattern - hledat vzor
 - ?pattern - hledat vzor dozadu
 - \vpattern - „velmi kouzelný“ vzor: nealfanumerické znaky jsou interpretovány jako speciální symboly regulárních výrazů (není potřeba escapování)
 - n - opakovat hledání stejným směrem
 - N - opakovat hledání v opačném směru
 - :%s/old/new/g - nahradit všechny "old" s "new" v celém souboru
 - :%s/old/new/gc - nahradit všechny "old" s "new" v celém souboru s potvrzeními
 - :noh[lsearch] - odstranit zvýraznění shod vyhledávání
 
Vyhledávání ve více souborech
- :vim[grep] /pattern/ {`{file}`} - hledat vzor ve více souborech
 
- :cn[ext] - skok na další shodu
 - :cp[revious] - skok na předchozí shodu
 - :cope[n] - otevřít okno se seznamem shod
 - :ccl[ose] - zavřít okno rychlé opravy
 
Záložky
- :tabnew or :tabnew {page.words.file} - otevřít soubor v nové záložce
 - Ctrl + wT - přesunout aktuální rozdělené okno na vlastní záložku
 - gt or :tabn[ext] - přejít na další záložku
 - gT or :tabp[revious] - přejít na předchozí záložku
 - #gt - přejít na záložku číslo #
 - :tabm[ove] # - přesunout aktuální záložku na #-tou pozici (indexováno od 0)
 - :tabc[lose] - zavřít aktuální záložku a všechna její okna
 - :tabo[nly] - zavřít všechny záložky kromě aktuální
 - 
            :tabdo command - spustit 
commandna všech záožkách (např.:tabdo q- zavře všechny otevřené záložky) 
Práce s více soubory
- :e[dit] soubor - upravit soubor v novém bufferu
 - :bn[ext] - přejít do dalšího bufferu
 - :bp[revious] - přejít do předchozího bufferu
 - :bd[elete] - smazat buffer (zavřít soubor)
 - :b[uffer]# - přejít do bufferu podle indexu #
 - :b[uffer] file - přejít do bufferu podle souboru
 - :ls or :buffers - vypsat všechny otevřené buffery
 - :sp[lit] soubor - otevřít soubor v novém bufferu a rozdělit okno
 - :vs[plit] soubor - otevřít soubor v novém bufferu a vertikálně rozdělit okno
 - :vert[ical] ba[ll] - editovat všechny buffery jako vertikální okna
 - :tab ba[ll] - editovat všechny buffery jako záložky
 - Ctrl + ws - rozdělit okno
 - Ctrl + wv - rozdělit okno vertikálně
 - Ctrl + ww - přepnout okna
 - Ctrl + wq - opustit okno
 - Ctrl + wx - vyměnit aktuální okno za následující
 - Ctrl + w= - všechna okna stejně vysoká a široká
 - Ctrl + wh - přesunout kurzor do levého okna (vertikální rozdělení)
 - Ctrl + wl - přesunout kurzor do pravého okna (vertikální rozdělení)
 - Ctrl + wj - přesunout kurzor do okna níže (horizontální rozdělení)
 - Ctrl + wk - přesunout kurzor do okna výše (horizontální rozdělení)
 - Ctrl + wH - nastavit aktuální okno na plnou výšku zcela vlevo (svislé okno úplně vlevo)
 - Ctrl + wL - nastavit aktuální okno na plnou výšku úplně vpravo (svislé okno úplně vpravo)
 - Ctrl + wJ - nastavit aktuální okno na plnou šířku úplně dole (nejspodnější vodorovné okno)
 - Ctrl + wK - nastavit aktuální okno na plnou šířku úplně nahoře (horní vodorovné okno)
 
Rozdíly
- zf - ručně nastavit rozbalení/sbalení
 - zd - smazat rozbalení/sbalení pod kurzorem
 - za - přepnout rozbalení/sbalení pod kurzorem
 - zo - rozbalit pod kurzorem
 - zc - sbalit pod kurzorem
 - zr - rozbalit vše o jednu úroveň
 - zm - sbalit vše o jednu úroveň
 - zi - přepnout funkci rozbalení/sbalení
 - ]c - skok na začátek další změny
 - [c - skok na začátek předchozí změny
 - do or :diffg[et] - získat rozdíl (z jiného bufferu)
 - dp or :diffpu[t] - vložit rozdíl (do jiného bufferu)
 - :diffthis - udělat z aktuálního okna část diff
 - :dif[fupdate] - aktualizovat rozdíly
 - :diffo[ff] - vypnout režim rozdílu pro aktuální okno