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 matchpairs
ve 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
command
na 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