Globálne

  • :h[elp] kľúčové slovo - otvorí pomoc pre kľúčové slovo
  • :sav[eas] súbor - uloží súbor ako
  • :clo[se] - zatvorí aktuálny panel
  • :ter[minal] - open a terminal window
  • K - otvorí manuálovú stránku pre slovo pod kurzorom
Tip Run vimtutor in a terminal to learn the first Vim commands.

Presun kurzoru

  • h - presunie kurzor doľava
  • j - presunie kurzor nadol
  • k - presunie kurzor hore
  • l - presunie kurzor doprava
  • gj - move cursor down (multi-line text)
  • gk - move cursor up (multi-line text)
  • H - presunie na hornú časť obrazovky
  • M - presunie do stredu obrazovky
  • L - presunie na spodok obrazovky
  • w - skočí na začiatok slova
  • W - skočí na začiatok slova (slová môžu obsahovať interpunkciu)
  • e - skočí na koniec slova
  • E - skočí na koniec slova (slová môžu obsahovať interpunkciu)
  • b - skočí späť na začiatok slova
  • B - skočí späť na začiatok slova (slová môžu obsahovať interpunkciu)
  • ge - jump backwards to the end of a word
  • gE - jump backwards to the end of a word (words can contain punctuation)
  • % - presunie sa na zodpovedajúci znak (predvolené podporované páry: '()', '{}', '[]' - použi :h matchpairs pre viac informácií)
  • 0 - skočí na začiatok riadku
  • ^ - skočí na prvý znak riadku, ktorý nie je prázdny
  • $ - skočí na koniec riadku
  • g_ - skočí na posledný znak riadku, ktorý nie je prázdny
  • gg - prejde na prvý riadok dokumentu
  • G - prejde na posledný riadok dokumentu
  • 5gg or 5G - prejde na riadok 5
  • gd - move to local declaration
  • gD - move to global declaration
  • fx - skočí na ďalší výskyt znaku x
  • tx - skočí jeden znak pred ďalší výskyt znaku x
  • Fx - skočí na predchádzajúci výskyt znaku x
  • Tx - skočí jeden znak pred predchádzajúci výskyt znaku x
  • ; - zopakujte predchádzajúci pohyb f, t, F alebo T
  • , - zopakujte predchádzajúci pohyb f, t, F alebo T, dozadu
  • } - skočí na ďalší odsek (alebo funkciu/blok pri úprave kódu)
  • { - skočí na predchádzajúci odsek (alebo funkciu/blok pri úprave kódu)
  • zz - centruje kurzor na stred obrazovky
  • zt - position cursor on top of the screen
  • zb - position cursor on bottom of the screen
  • Ctrl + e - presunie obrazovku dole o jeden riadok (bez posunu kurzoru)
  • Ctrl + y - presunie obrazovku hore o jeden riadok (bez posunu kurzoru)
  • Ctrl + b - presunie späť jednu celú obrazovku
  • Ctrl + f - presunie dopredu jednu celú obrazovku
  • Ctrl + d - presunie dopredu o 1/2 obrazovky
  • Ctrl + u - presunie späť o 1/2 obrazovky
Tip Vlož číslo pred príkaz na jeho zopakovanie. Napríklad, 4j skočí 4 riadky nadol.

Režim vkladania - vkladanie/pridanie textu

  • i - vlož pred kurzor
  • I - vlož na začiatok riadku
  • a - vlož (pripoj) za kurzor
  • A - vlož (pripoj) na koniec riadku
  • o - pripoj (vytvor) nový riadok pod kurzorom
  • O - pripoj (vytvor) nový riadok nad kurzorom
  • ea - vlož (pripoj) na koniec slova
  • Ctrl + h - delete the character before the cursor during insert mode
  • Ctrl + w - delete word before the cursor during insert mode
  • Ctrl + j - begin new line during insert mode
  • Ctrl + t - indent (move right) line one shiftwidth during insert mode
  • Ctrl + d - de-indent (move left) line one shiftwidth during insert mode
  • Ctrl + n - insert (auto-complete) next match before the cursor during insert mode
  • Ctrl + p - insert (auto-complete) previous match before the cursor during insert mode
  • Ctrl + rx - insert the contents of register x
  • Ctrl + ox - Temporarily enter normal mode to issue one normal-mode command x.
  • Esc or Ctrl + c - ukonči režim vkladania

Editovanie

  • r - nahradí jeden znak
  • R - replace more than one character, until ESC is pressed.
  • J - pripojí riadok nižšie k aktuálnemu s použitím medzery
  • gJ - pripojí riadok nižšie k aktuálnemu bez použitia medzery
  • gwip - zarovná paragraf
  • g~ - switch case up to motion
  • gu - change to lowercase up to motion
  • gU - change to uppercase up to motion
  • cc - zmení (nahradí) celý riadok
  • c$ or C - zmení (nahradí) do konca riadku
  • ciw - zmení (nahradí) celé slovo
  • cw or ce - zmení (nahradí) do konca slova
  • s - odstráni znak a nahradí textom
  • S - odstráni riadok a nahradí textom (rovnako ako cc)
  • xp - prehodí dve písmená (vymazanie a vloženie)
  • u - krok späť
  • U - restore (undo) last changed line
  • Ctrl + r - vráti krok späť
  • . - opakuje posledný príkaz

Označenie textu (vizuálny režim)

  • v - spusti vizuálny režim, označ riadky, potom urob príkaz (napr. y-kopíruj)
  • V - spusti riadkový vizuálny režim
  • o - presuň sa na druhý koniec vyznačenej oblasti
  • Ctrl + v - spusti blokový vizuálny režim
  • O - presuň sa na druhý roh bloku
  • aw - označ slovo
  • ab - blok s ()
  • aB - blok s {}
  • at - a block with <> tags
  • ib - vnútorný blok s ()
  • iB - vnútorný blok s {}
  • it - inner block with <> tags
  • Esc or Ctrl + c - ukonči vizuálny režim
Tip Instead of b or B one can also use ( or { respectively.

Vizuálne príkazy

  • > - posunie text doprava
  • < - posunie text doľava
  • y - vystrihne (skopíruje) označený text
  • d - zmaže označený text
  • ~ - zmení veľkosť textu
  • u - change marked text to lowercase
  • U - change marked text to uppercase

Registre

  • :reg[isters] - zobrazí obsah registra
  • "xy - skopíruje do registra x
  • "xp - prilepí obsah registra x
  • "+y - yank into the system clipboard register
  • "+p - paste from the system clipboard register
Tip Registre sa ukladajú do súboru ~/.viminfo a budú načítané znova pri ďalšom reštarte vim.
Tip Special registers:

0 - last yank
" - unnamed register, last delete or yank
% - current file name
# - alternate file name
* - clipboard contents (X11 primary)
+ - clipboard contents (X11 clipboard)
/ - last search pattern
: - last command-line
. - last inserted text
- - last small (less than a line) delete
= - expression register
_ - black hole register

Značky

  • :marks - zoznam značiek
  • ma - nastaví aktuálnu polohu pre značku A
  • `a - skočí na polohu značky A
  • y`a - skopíruje text do polohy značky A
  • `0 - go to the position where Vim was previously exited
  • `" - go to the position when last editing this file
  • `. - go to the position of the last change in this file
  • `` - go to the position before the last jump
  • :ju[mps] - list of jumps
  • Ctrl + i - go to newer position in jump list
  • Ctrl + o - go to older position in jump list
  • :changes - list of changes
  • g, - go to newer position in change list
  • g; - go to older position in change list
  • Ctrl + ] - jump to the tag under cursor
Tip To jump to a mark you can either use a backtick (`) or an apostrophe ('). Using an apostrophe jumps to the beginning (first non-blank) of the line holding the mark.

Makrá

  • qa - nahraje makro a
  • q - zastaví nahrávanie makra
  • @a - spusti makro a
  • @@ - opätovné spustenie posledného spusteného makra

Vystrihni a prilep

  • yy - skopíruje riadok
  • 2yy - skopíruje 2 riadky
  • yw - skopíruje znaky slova z polohy kurzora na začiatok ďalšieho slova
  • yiw - skopíruje slovo pod kurzorom
  • yaw - skopíruje slovo pod kurzorom a miesto pred alebo za ním
  • y$ or Y - skopíruje do konca riadku
  • p - vloží (prilepí) schránku za kurzor
  • P - vloží (prilepí) schránku pred kurzor
  • gp - put (paste) the clipboard after cursor and leave cursor after the new text
  • gP - put (paste) before cursor and leave cursor after the new text
  • dd - zmaže (vystrihne) riadok
  • 2dd - zmaže (vystrihne) 2 riadky
  • dw - zmaže (vystrihne) znaky slova z polohy kurzora na začiatok ďalšieho slova
  • diw - zmaže (vystrihne) slovo pod kurzorom
  • daw - zmaže (vystrihne) slovo pod kurzorom a miesto pred alebo za ním
  • :3,5d - delete lines starting from 3 to 5
Tip You can also use the following characters to specify the range:
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,$d - 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 - zmaže (vystrihne) do konca riadku
  • x - zmaže (vystrihne) znak

Indent text

  • >> - indent (move right) line one shiftwidth
  • << - de-indent (move left) line one shiftwidth
  • >% - indent a block with () or {} (cursor on brace)
  • <% - de-indent a block with () or {} (cursor on brace)
  • >ib - indent inner block with ()
  • >at - indent a block with <> tags
  • 3== - re-indent 3 lines
  • =% - re-indent a block with () or {} (cursor on brace)
  • =iB - re-indent inner block with {}
  • gg=G - re-indent entire buffer
  • ]p - paste and adjust indent to current line

Ukončenie

  • :w - zapíše (uloží) súbor, ale neukončí
  • :w !sudo tee % - zapíše aktuálny súbor pomocou sudo
  • :wq or :x or ZZ - zapíše (uloží) a ukončí
  • :q - ukončí (zlyhá, ak sú neuložené zmeny)
  • :q! or ZQ - ukončí a zahodí neuložené zmeny
  • :wqa - zapíše (uloží) a ukončí všetky karty

Vyhľadaj a nahraď

  • /pattern - hľadaj vzor
  • ?pattern - hľadaj vzor pozadu
  • \vpattern - 'very magic' pattern: nealfanumerické znaky sa interpretujú ako špeciálne symboly regexu (nie je potrebný escape)
  • n - zopakuje vyhľadávanie rovnakým smerom
  • N - zopakuje vyhľadávanie opačným smerom
  • :%s/old/new/g - nahradí všetky 'old' s 'new' v celom súbore
  • :%s/old/new/gc - nahradí všetko 'old' s 'new' v celom súbore s potvrdením
  • :noh[lsearch] - odstráni zvýraznenie vyhľadanej zhody

Vyhľadávanie vo viacerých súboroch

  • :vim[grep] /pattern/ {`{file}`} - vyhľadávanie vzoru vo viacerých súboroch
e.g. :vim[grep] /foo/ **/*
  • :cn[ext] - skočí na nasledujúcu zhodu
  • :cp[revious] - skočí na predchodziu zhodu
  • :cope[n] - otvorí okno obsahujúce zoznam zhôd
  • :ccl[ose] - close the quickfix window

Záložky

  • :tabnew or :tabnew {page.words.file} - otvorí súbor v novej záložke
  • Ctrl + wT - presunie aktuálne rozdelené okno na vlastnú záložku
  • gt or :tabn[ext] - presunie na ďalšiu záložku
  • gT or :tabp[revious] - presunie na predchádzajúcu záložku
  • #gt - prejde na záložku číslo #
  • :tabm[ove] # - presunie aktuálnu záložku na # polohu (indexovaná od 0)
  • :tabc[lose] - zatvorí aktuálnu záložku a všetky jej okná
  • :tabo[nly] - zatvorí všetky záložky okrem aktuálnej
  • :tabdo command - spusti command na všetkých záložkach (e.g. :tabdo q - zatvorí všetky otvorené záložky)

Práca s viacerými súbormi

  • :e[dit] súbor - edituje súbor v novom buffri
  • :bn[ext] - prejde na nasledujúci buffer
  • :bp[revious] - prejde na predchádzajúci buffer
  • :bd[elete] - vymaže buffer (zatvorí súbor)
  • :b[uffer]# - go to a buffer by #
  • :b[uffer] file - go to a buffer by file
  • :ls or :buffers - zoznam všetkých otvorených buffrov
  • :sp[lit] súbor - otvorí súbor v novom buffri a rozdelí okno
  • :vs[plit] súbor - otvorí súbor v novom buffri a vertikálne rozdelí okno
  • :vert[ical] ba[ll] - edit all buffers as vertical windows
  • :tab ba[ll] - edit all buffers as tabs
  • Ctrl + ws - rozdelí okno
  • Ctrl + wv - rozdelí okno vertikálne
  • Ctrl + ww - prepína medzi oknami
  • Ctrl + wq - zavrie okno
  • Ctrl + wx - exchange current window with next one
  • Ctrl + w= - make all windows equal height & width
  • Ctrl + wh - presunie kurzor do ľavého okna (vertikálne rozdelenie)
  • Ctrl + wl - presunie kurzor do pravého okna (vertikálne rozdelenie)
  • Ctrl + wj - presunie kurzor do okna pod (horizontálne rozdelenie)
  • Ctrl + wk - presunie kurzor do okna nad (horizontálne rozdelenie)
  • Ctrl + wH - make current window full height at far left (leftmost vertical window)
  • Ctrl + wL - make current window full height at far right (rightmost vertical window)
  • Ctrl + wJ - make current window full width at the very bottom (bottommost horizontal window)
  • Ctrl + wK - make current window full width at the very top (topmost horizontal window)

Diff

  • zf - manually define a fold up to motion
  • zd - delete fold under the cursor
  • za - toggle fold under the cursor
  • zo - open fold under the cursor
  • zc - close fold under the cursor
  • zr - reduce (open) all folds by one level
  • zm - fold more (close) all folds by one level
  • zi - toggle folding functionality
  • ]c - jump to start of next change
  • [c - jump to start of previous change
  • do or :diffg[et] - obtain (get) difference (from other buffer)
  • dp or :diffpu[t] - put difference (to other buffer)
  • :diffthis - make current window part of diff
  • :dif[fupdate] - update differences
  • :diffo[ff] - switch off diff mode for current window
Tip The commands for folding (e.g. za) operate on one level. To operate on all levels, use uppercase letters (e.g. zA).
Tip To view the differences of files, one can directly start Vim in diff mode by running vimdiff in a terminal. One can even set this as git difftool.