Globalne naredbe
- :h[elp] naredba - otvori pomoć za naredbu
- :sav[eas] datoteka - snimi datoteku kao
- :clo[se] - zatvori trenutno aktivni prozor
- :ter[minal] - otvori terminal u prozoru
- K - otvori 'man' stranicu za riječ pod kursorom
Pomicanje kursora
- h - pomakni kursor lijevo
- j - pomakni kursor dolje
- k - pomakni kursor gore
- l - pomakni kursor desno
- gj - pomakni kursor dolje (višelinijski tekst)
- gk - pomakni kursor gore (višelinijski tekst)
- H - pomakni kursor na vrh zaslona
- M - pomakni kursor na sredinu zaslona
- L - pomakni kursor na dno zaslona
- w - idi na početak sljedeće riječi
- W - idi na početak sljedeće riječi (riječ može sadržavati znakove interpunkcije)
- e - idi na kraj riječi
- E - idi na kraj riječi (riječ može sadržavati znakove interpunkcije)
- b - idi na početak riječi
- B - idi na početak riječi (riječ može sadržavati znakove interpunkcije)
- ge - idi na kraj predhodne riječi
- gE - idi na kraj predhodne riječi (riječ može sadržavati znakove interpunkcije)
-
% - idi na sljedeći podudarni znak (podržani zadani parovi: '()', '{}', '[]' - za više informacija koristi Vim naredbu
:h matchpairs
) - 0 - idi na početak linije
- ^ - idi na prvi neprazni znak u redu
- $ - idi na kraj linije
- g_ - idi na zadnji neprazni znak u redu
- gg - idi na prvi red dokumenta
- G - idi na zadnji red dokumenta
- 5gg or 5G - idi na 5. red
- gd - idi na lokalnu deklaraciju varijable (programski jezici)
- gD - idi na globalnu deklaraciju varijable (programski jezici)
- fx - idi na sljedeće pojavljivanje znaka x
- tx - idi ispred sljedećeg pojavljivanja znaka x
- Fx - idi na predhodno pojavljivanje znaka x
- Tx - idi iza predhodnog pojavljivanja znaka x
- ; - ponovi predhodno f, t, F ili T pomicanje
- , - ponovi predhodno f, t, F ili T pomicanje, u suprotnom smjeru
- } - idi na sljedeći odjeljak (ili funkciju/blok, kod uređivanja programskog koda)
- { - idi na predhodni odjeljak (ili funkciju/blok, kod uređivanja programskog koda)
- zz - postavi kursor na sredinu zaslona
- zt - postavi kursor na vrh zaslona
- zb - postavi kursor na dno zaslona
- Ctrl + e - pomakni zaslon jednu liniju prema dolje (bez pomicanja kursora)
- Ctrl + y - pomakni zaslon jednu liniju prema gore (bez pomicanja kursora)
- Ctrl + b - pomakni nazad jedan zaslon
- Ctrl + f - pomakni naprijed jedan zaslon
- Ctrl + d - pomakni naprijed pola zaslona
- Ctrl + u - pomakni nazad pola zaslona
Uređivanje teksta (insert mode)
- i - umetni ispred kursora
- I - umetni na početak reda
- a - umetni iza kursora
- A - umetni na kraj reda
- o - dodaj (započni) novi red ispod kursora
- O - dodaj (započni) novu red iznad kursora
- ea - umetni (dodaj) na kraj riječi
- Ctrl + h - obriši znak ispred kursora tijekom uređivanja
- Ctrl + w - obriši riječ ispred kursora tijekom uređivanja
- Ctrl + j - idi u novi red tijekom uređivanja
- Ctrl + t - povećaj uvlaku (pomakni udesno) red za zadanu širinu tijekom uređivanja
- Ctrl + d - smanji uvlaku (pomakni ulijevo) red za zadanu širinu tijekom uređivanja
- Ctrl + n - umetni (automatsko dovršavanje) sljedeće podudarne riječi ispred kursora tijekom uređivanja
- Ctrl + p - umetni (automatsko dovršavanje) predhodne podudarne riječi ispred kursora tijekom uređivanja
- Ctrl + rx - umetni sadržaj registra x
- Ctrl + ox - Privremeno koristi normalni mod za izvršavanje jedne naredbe x.
- Esc or Ctrl + c - izađi iz uređivanja teksta
Uređivanje
- r - promijeni jedan znak
- R - promijeni više od jednog znaka, za kraj promjene koristi ESC
- J - spoji red ispod s trenutnim redom koristeći jedan prazni znak između (razdjelnik)
- gJ - spoji red ispod s trenutnim redom bez dodavanja razdjelnika
- gwip - preoblikuj odjeljak
- g~ - zamijeni velika i mala slova koristeći pomicanje kursora
- gu - promijeni u mala slova koristeći pomicinje kursora
- gU - promijeni u velika slova koristeći pomicinje kursora
- cc - promijeni cijeli red
- c$ or C - promijeni sve do kraja reda
- ciw - promijeni cijelu riječ
- cw or ce - promijeni do kraja riječi
- s - izbriši znak i zamijeni s drugim tekstom
- S - izbriši red i zamijeni s drugim tekstom (isto kao cc)
- xp - zamijeni poredak dva znaka (izbriši i zalijepi)
- u - poništi (undo)
- U - poništi sve promjene u zadnje izmjenjenom redu
- Ctrl + r - ponovi (redo)
- . - ponovi zadnju naredbu
Označavanje teksta (visual mode)
- v - započni označavanje teksta, označi tekst, zatim izvrši naredbu (npr. y - kopira označeni tekst)
- V - započni označavanje cijelih redova
- o - pomakni kursor na suprotni kraj označenog bloka
- Ctrl + v - započni označavanje bloka
- O - pomakni kursor na drugu stranu označenog bloka
- aw - označi riječ
- ab - označi blok sa ()
- aB - označi blok sa {}
- at - označi blok sa <> tag-ovima
- ib - označi blok unutar ()
- iB - označi blok unutar {}
- it - označi blok unutar <> tag-ova
- Esc or Ctrl + c - izađi iz označavanja teksta
Naredbe tijekom označavanja teksta
- > - pomakni označeni tekst udesno
- < - pomakni označeni tekst ulijevo
- y - kopiraj označeni tekst
- d - obriši označeni tekst
- ~ - zamijeni mala i velika slova
- u - promijeni označeni tekst u mala slova
- U - promijeni označeni tekst u velika slova
Registri
- :reg[isters] - prikazi sadržaj registara
- "xy - kopiraj u registar x
- "xp - zalijepi sadržaj registra x
- "+y - kopiraj u registar međuspremnika sustava (clipboard)
- "+p - zalijepi iz registra međuspremnika sustava (clipboard)
0 - zadnje kopirani tekst
" - neoznačeni (bezimeni) registar, posljednje brisanje ili kopiranje
% - naziv trenutne datoteke
# - alternativni naziv datoteke
* - sadržaj međuspremnika (clipboard) (X11 primarno)
+ - sadržaj međuspremnika (X11 clipboard)
/ - zadnje upotrebljeni izraz (pattern)
: - zadnja naredba
. - zadnje zalijepljeni tekst
- - zadnji manji (manje od jedne linije) obrisani tekst
= - 'izraz' registar
_ - 'crna rupa' registar
Oznake i položaji
- :marks - lista oznaka
- ma - označi trenutni položaj oznakom A
- `a - idi na položaj oznake A
- y`a - kopiraj sav tekst do položaja oznake A
- `0 - idi na položaj neposredno prije zatvaranja Vim-a
- `" - idi na položaj zadnjeg uređivanja datoteke
- `. - idi na položaj zadnje promjene datoteke
- `` - idi na položaj prije zadnjeg pomaka
- :ju[mps] - lista pomaka
- Ctrl + i - idi na sljedeći (skorašnji) položaj u listi pomicanja
- Ctrl + o - idi na predhodni (stariji) položaj u listi pomicanja
- :changes - lista izmjena
- g, - idi na položaj sljedeće (skorašnje) promjene
- g; - idi na položaj predhodne (starije) promjene
- Ctrl + ] - idi na tag pod kursorom
Makro naredbe
- qa - snimi makro a
- q - zaustavi snimanje makro-a
- @a - pokreni makro a
- @@ - ponovo pokreni zadnji makro
Izreži i zaljepi
- yy - kopiraj cijeli red
- 2yy - kopiraj 2 reda
- yw - kopiraj znakove u riječi od trenutog položaja kursora do početka sljedeće riječi
- yiw - kopiraj cijelu riječ pod kursorom
- yaw - kopiraj riječ pod kursorom i razmak prije ili poslije riječi
- y$ or Y - kopiraj sve do kraja reda
- p - zalijepi sadržaj trenutnog registra iza kursora
- P - zalijepi ispred kursora
- gp - zalijepi sadržaj trenutnog registra iza kursora i postavi kursor iza novog teksta
- gP - zalijepi ispred kursora i postavi kursor iza novog teksta
- dd - izbriši čitavi red
- 2dd - izbriši 2 reda
- dw - izbriši znakove u riječi od položaja kursora do početka sljedeće riječi
- diw - izbriši cijelu riječ pod kursorom
- daw - izbriši riječ pod kursorom i razmak prije ili poslije riječi
- :3,5d - izbriši redove počevši od 3. do 5.
e.g.
:.,$d - Od trenutnog reda do kraja datoteke
:.,1d - Od trenutnog reda do početka datoteke
:10,1d - Od 10. reda do početka datoteke
- :g/{pattern}/d - izbriši sve redove koji sadrže izraz (pattern)
- :g!/{pattern}/d - izbriši sve redove koji ne sadrže izraz (pattern)
- d$ or D - izbriši sve do kraja reda
- x - izbriši znak pod kursorom
Uvlačenje teksta
- >> - povećaj uvlaku reda (pomakni udesno) za zadanu širinu
- << - smanji uvlaku reda (pomakni ulijevo) za zadanu širinu
- >% - uvuci blok zadan sa () ili {} (kursor na zagradi)
- <% - uvuci blok zadan sa () ili {} (kursor na zagradi)
- >ib - uvuci unutrašnjost bloka zadanog sa ()
- >at - uvuci blok zadan sa <> tag-ovima
- 3== - ponovi uvlaku 3 reda
- =% - ponovi uvlaku bloka zadanog sa () ili {} (kursor na zagradi)
- =iB - ponovi uvlaku unutrašnjosti bloka zadanog sa {}
- gg=G - ponovo uvuci čitavi međuspremnik
- ]p - zalijepi i prilagodi uvlaku u trenutnom redu
Zatvaranje
- :w - spremi izmjene, ali nemoj zatvoriti datoteku
- :w !sudo tee % - spremi izmjene u datoteci koristeći sudo
- :wq or :x or ZZ - spremi i zatvori
- :q - zatvori (neuspješno ukoliko ima nespremljenih izmjena)
- :q! or ZQ - zatvori i nemoj spremiti izmjene
- :wqa - spremi i zatvori za sve otvorene datoteke
Traži i zamijeni
- /pattern - traži izraz
- ?pattern - traži izraz unazad
- \vpattern - 'very magic' izraz: znakovi koji nisu alfanumerički se tretiraju kao posebi znakovi regularnog izraza (nije potreban 'escaping')
- n - ponovi pretragu u istom smjeru
- N - ponovi pretragu u suprotnom smjeru
- :%s/old/new/g - zamijeni svaku pojavu starog izraza s novim izrazom
- :%s/old/new/gc - zamijeni svaku pojavu starog izraza s novim izrazom, ali zahtjevaj potvrdu
- :noh[lsearch] - makni prikaz istaknutog pronađenog teksta nakon pretrage
Pretraga u više datoteka
- :vim[grep] /pattern/ {`{file}`} - traži izraz u više datoteka
- :cn[ext] - idi na sljedeći pronađeni tekst
- :cp[revious] - idi na predhodni pronađeni tekst
- :cope[n] - otvori prozor sa pregledom pronađenog teksta
- :ccl[ose] - zatvori prozor za brzi popravak
Kartice (tabs)
- :tabnew or :tabnew {page.words.file} - otvori datoteku u novoj kartici
- Ctrl + wT - prebaci trenutni podjeljeni prozor u posebnu novu karticu
- gt or :tabn[ext] - idi na sljedeću karticu
- gT or :tabp[revious] - idi na predhodnu karticu
- #gt - idi na karticu broj #
- :tabm[ove] # - pomakni trenutnu karticu na # mjesto (indeks kreće od 0)
- :tabc[lose] - zatvori trenutnu karticu i sve pripadajuće pozore
- :tabo[nly] - zatvori sve kartice osim trenutno otvorene
-
:tabdo command - pokreni naredbu
command
u svim karticama (npr.:tabdo q
- zatvara sve otvorene kartice)
Rad sa više datoteka
- :e[dit] datoteka - uredi datoteku u novom međuspremniku (buffer)
- :bn[ext] - idi na sljedeći međuspremnik (buffer)
- :bp[revious] - idi na predhodni međuspremnik (buffer)
- :bd[elete] - izbriši međuspremnik (zatvori datoteku)
- :b[uffer]# - otvori međuspremnik s indeksom #
- :b[uffer] file - otvori međuspremnik definiran datotekom
- :ls or :buffers - lista svih otvorenih međuspremnika (buffers)
- :sp[lit] datoteka - otvori datoteku u novom međuspremniku (buffer) i podijeli zaslon
- :vs[plit] datoteka - otvori datoteku u novom međuspremniku (buffer) i podijeli zaslon vertikalno
- :vert[ical] ba[ll] - uredi sve međuspremnike u vertikalnim prozorima
- :tab ba[ll] - uredi sve međuspremnike (buffer) u karticama (tabs)
- Ctrl + ws - podijeli prozor
- Ctrl + wv - podijeli prozor vertikalno
- Ctrl + ww - zamijeni prozore
- Ctrl + wq - zatori prozor
- Ctrl + wx - promijeni trenutni prozor s sljedećim
- Ctrl + w= - postavi sve prozore na jednake dimenzije (sirina i visina)
- Ctrl + wh - pomakni kursor u prozor lijevo (vertikalna podjela)
- Ctrl + wl - pomakni kursor u prozor desno (vertikalna podjela)
- Ctrl + wj - pomakni kursor u prozor ispod (horizontalna podjela)
- Ctrl + wk - pomakni kursor u prozor iznad (horizontalna podjela)
- Ctrl + wH - pomakni trenutni prozor skroz ulijevo i podesi na punu visinu zaslona (lijevi vertikalni prozor)
- Ctrl + wL - pomakni trenutni prozor skroz udesno i podesi na punu visinu zaslona (desni vertikalni prozor)
- Ctrl + wJ - pomakni trenutni prozor skroz dolje i podesi na punu širinu zaslona (donji horizontalni prozor)
- Ctrl + wK - pomakni trenutni prozor skroz gore i podesi na punu širinu zaslona (gornji horizontalni prozor)
Razlika (Diff)
- zf - ručno definiranje grupiranja (skupljanja) teksta
- zd - poništi zadano grupiranje teksta pod kursorom
- za - izmjenjuj skupljanje/rastvaranje grupiranog teksta pod kursorom
- zo - rastvori grupirani tekst pod kursorom
- zc - skupi grupirani tekst pod kursorom
- zr - rastvori jedan nivo manje u svim grupiranim tekstovima
- zm - skupi jedan nivo više u svim grupiranim tekstovima
- zi - izmjenjuj skupljanje/rastvaranje grupiranih tekstova
- ]c - idi na početak sljedeće izmjene
- [c - idi na početak predhodne izmjene
- do or :diffg[et] - dohvati razliku (iz drugog buffer-a)
- dp or :diffpu[t] - pošalji razliku (drugom buffer-u)
- :diffthis - označi trenutni prozor dijelom razlike
- :dif[fupdate] - osvježi razlike
- :diffo[ff] - ukloni trenutni prozor iz razlike