Yleiset
- :h[elp] avainsana - näytä apu avainsanalle
- :sav[eas] tiedosto - tallenna nimellä
- :clo[se] - sulje nykyinen paneeeli
- :ter[minal] - avaa terminaali ikkuna
- K - avaa man-sivu kursorin alla olevalle sanalle
Kursorin liike
- h - siirrä kursori vasemmalle
- j - siirrä kursori alas
- k - siirrä kursori ylös
- l - siirrä kursori oikealle
- gj - siirrä kursori alas (monirivinen teksti)
- gk - siirrä kursori ylös (monirivinen teksti)
- H - siirry näytön yläosaan
- M - siirry näytön keskelle
- L - siirry näytön alaosaan
- w - hyppää eteenpäin sanan alkuun
- W - hyppää eteenpäin sanan alkuun (sanat voivat sisältää välimerkkejä)
- e - hyppää eteenpäin sanan loppuun
- E - hyppää eteenpäin sanan loppuun (sanat voivat sisältää välimerkkejä)
- b - hyppää taaksepäin sanan alkuun
- B - hyppää taaksepäin sanan alkuun (sanat voivat sisältää välimerkkejä)
- ge - hyppää taaksepäin sanan loppuun
- gE - hyppää taaksepäin sanan loppuun (sanat voivat sisältää välimerkkejä)
-
% - siirrä kursori merkin pariin (oletuksena tuetut parit: '()', '{}', '[]' - aja
:h matchpairs
vim:issä saadaksesi lisää tietoa) - 0 - hyppää rivin alkuun
- ^ - hyppää rivin ensimmäiseen ei-tyhjään merkkiin
- $ - hyppää rivin loppuun
- g_ - hyppää rivin viimeiseen ei-tyhjään merkkiin
- gg - mene tiedoston ensimmäiselle riville
- G - mene tiedoston viimeiselle riville
- 5gg or 5G - mene riville 5
- gd - mene paikalliseen määrittelyyn
- gD - mene globaaliin määrittelyyn
- fx - hyppää seuraavaan merkin x esiintymään
- tx - hyppää merkin x seuraavaa esiintymää edeltävään merkkiin
- Fx - hyppää edelliseen merkin x esiintymään
- Tx - hyppää merkin x edellistä esiintymää seuraavaan merkkiin
- ; - toista edellinen f, t, F tai T liike
- , - toista edellinen f, t, F tai T liike, takaperin
- } - hyppää seuraavaan kappaleeseen (tai funktioon/lohkoon koodia editoidessa))
- { - hyppää edelliseen kappaleeseen (tai funktioon/lohkoon koodia editoidessa))
- zz - keskitä näyttö kursoriin
- zt - sijoita kursori sivun yläosaan
- zb - sijoita kursori sivun alaosaan
- Ctrl + e - liikuta näyttöä yksi rivi alas (ilman että kursori liikkuu)
- Ctrl + y - liikuta näyttöä yksi rivi ylös (ilman että kursori liikkuu)
- Ctrl + b - siirrä näyttöä yksi sivu ylös (kursori viimeiselle riville)
- Ctrl + f - siirrä näyttöä yksi sivu alas (kursori ensimmäiselle riville)
- Ctrl + d - siirrä kursoria ja näyttöä 1/2 sivu alas
- Ctrl + u - siirrä kursoria ja näyttöä 1/2 sivu ylös
Syöttötila - tekstin syöttäminen/lisääminen
- i - syötä kursorin eteen
- I - syötä rivin alkuun
- a - syötä (lisää) kursorin jälkeen
- A - syötä (lisää) rivin loppuun
- o - lisää (avaa) uusi rivi nykyisen rivin alle
- O - lisää (avaa) uusi rivi nykyisen rivin yläpuolelle
- ea - syötä (lisää) sanan loppuun
- Ctrl + h - poista kursoria edeltävä merkki syöttytilassa ollessa
- Ctrl + w - poista kursoria edeltävä sana syöttötilassa ollessa
- Ctrl + j - lisää rivinvaihto kursin sijaintiin syöttytilassa ollessa
- Ctrl + t - sisennä (siirrä oikealle) yhdellä shiftwidth-arvolla syöttytilassa ollessa
- Ctrl + d - vähennä sisennystä (siirrä vasemmalle) yhdellä shiftwidth-arvolla syöttyötilassa ollessa
- Ctrl + n - syötä (täydennä automaattisesti) seuraava osuma ennen kursoria syöttötilassa ollessa
- Ctrl + p - syötä (täydennä automaattisesti) edellinen osuma ennen kursoria syöttötilassa ollessa
- Ctrl + rx - syötä rekisterin x sisältö
- Ctrl + ox - Siirry väliaikaisesti normaalitilaan ja syötä yksi normaalin tilan komento x.
- Esc or Ctrl + c - poistu syöttötilasta
Muokkaaminen
- r - korvaa yksi merkki.
- R - korvaa useampi kuin yksi merkki, kunnes ESC on painettu.
- J - liitä alla oleva rivi nykyiseen välilyönnillä
- gJ - liitä alla oleva rivi nykyiseen ilman välilyöntiä
- gwip - formatoi kappale
- g~ - muuta kirjaimien koko liikkeen loppuun asti
- gu - muuta pieniksi kirjaimiksi liikkeen loppuun asti
- gU - muuta isoiksi kirjaimiksi liikeen loppuun asti
- cc - muuta (korvaa) koko rivi
- c$ or C - muuta (korvaa) rivin loppun asti
- ciw - muuta (korvaa) koko sana
- cw or ce - muuta (korvaa) sanan loppuun asti
- s - poista merkki ja korvaa tekstillä
- S - poista rivi ja kovaa tekstillä (sama kuin cc)
- xp - vaihda kahden kirjaimen paikkaa (leikkaa ja liitä)
- u - peru
- U - palauta (peru) viimeksi muutettu rivi
- Ctrl + r - tee uudelleen
- . - toista viimeisin komento
Tekstin merkintä (visuaalinen tila)
- v - käynnistä visuaalinen tila, merkitse alue, sitten aja komento (esim. y-nykäise)
- V - käynnistä rivikohtainen visuaalinen tila
- o - siirry merkityn alueen toiseen päähän
- Ctrl + v - käynnistä lohkokohtainen visuaalinen tila
- O - siirry lohkon toiseen kulmaan
- aw - merkitse sana
- ab - merkitse () lohko
- aB - merkitse {} lohko
- at - merkitse <> lohko
- ib - merkitse () sisempi lohko
- iB - merkitse {} sisempi lohko
- it - merkitse <> sisempi lohko
- Esc or Ctrl + c - poistu visuaalisesta tilasta
Visuaaliset komennot
- > - siirrä tekstiä oikealle
- < - siirrä tekstiä vasemmalle
- y - nykäise (kopioi) merkitty teksti
- d - poista merkitty teksti
- ~ - vaihda kirjaimien koko
- u - muuta merkityn tekstin kirjaimet pieneksi
- U - muuta merkityn tekstin kirjaimet isoiksi
Rekisterit
- :reg[isters] - näytä rekisterien sisältö
- "xy - nykäisen rekisteriin x
- "xp - liitä rekisterin x sisältö
- "+y - nykäisen järjestelmän leikepöydän rekisteriin
- "+p - liitä järjestelmän leikepöydän rekisteristä
0 - viimeisin nykäsy
" - nimeämätön rekisteri, viimeisin poisto tai nykäsy
% - nykyisen tiedoston nimi
# - vaihtoehtoinen tiedoston nimi
* - leikepöydän sisältö (X11 ensisijainen)
+ - leikepöydän sisältö (X11 leikepöytä)
/ - viimeisin haku kaava
: - viimeisin komento
. - viimeisin syötetty teksti
- - viimeisin pieni (alle rivin) poisto
= - yhtälö rekisteri
_ - musta aukko rekisteri
Merkit ja sijainnit
- :marks - lista merkeistä
- ma - aseta nykyisen sijainti merkkiin A
- `a - hyppää merkin A sijantiin
- y`a - nykäise teksti merkin A sijaintiin asti
- `0 - mene sijaintiin, jossa Vim edellisen kerran suljettiin
- `" - mene sijaintiin, jossa viimeksi lähdit tiedostosta
- `. - mene sijaintiin, jossa viimeisin muutos tehtiin tähän tiedostoon
- `` - mene edellistä hyppyä edeltävään sijaintiin
- :ju[mps] - listaa hypyt
- Ctrl + i - mene uusimpaan sijaintiin hyppy listalla
- Ctrl + o - mene vanhempaan sijantiin hyppy listalla
- :changes - muutoslista
- g, - mene uudempaan sijantiin muutoslistalla
- g; - mene vanhempaan sijaintiin muutoslistalla
- Ctrl + ] - hyppää kursorin alla olevaan tägiin
Makrot
- qa - tallenna makro a
- q - lopeta makron tallennus
- @a - aja makro a
- @@ - aja viimeisin makro uudelleen
Leikkaa ja liitä
- yy - nykäise (kopioi) rivi
- 2yy - nykäise (kopioi) 2 riviä
- yw - nykäise (kopioi) sanan merkit kursorin tämän hetkisestä sijainnista seuraavan sanan alkuun
- yiw - nykäise (kopioi) kursorin alla oleva sana
- yaw - nykäise (kopioi) kursorin alla oleva sana ja väliluönnit sen edessä ja takana
- y$ or Y - nykäise (kopioi) rivin loppuun
- p - laita (liitä) kursorin jälkeen
- P - laita (liitä) kursoria ennen
- gp - laita (liitä) kursorin jälkeen ja jätä kursori uuden tekstin perään
- gP - laita (liitä) kursorin eteen ja jätä kursori uuden tekstin perään
- dd - poista (leikkaa) rivi
- 2dd - poista (leikkaa) 2 riviä
- dw - poista (leikkaa) sanan merkit kursorin sijainnista seuraavan sanan alkuun
- diw - poista (leikkaa) kursorin alla oleva sana
- daw - poista (leikkaa) kursoin alla oleva sana ja välilyönti sen edestä tai takaa
- :3,5d - poista rivit kolme - viisi
e.g.
:.,$d - Nykyiseltä riviltä tiedoston loppuun
:.,1d - Nykyiseltä riviltä tiedoston alkuun
:10,1d - Kymmenenneltä rivilä tiedoston alkuun
- :g/{pattern}/d - poista kaikki rivit, joissa kaava esiintyy
- :g!/{pattern}/d - poista kaikki rivit, joilla kaava ei esiinny
- d$ or D - poista (leikkaa) rivin loppuun asti
- x - poista (leikkaa) merkki
Tekstin sisennys
- >> - sisennä (siirrä oikealle) yhdellä shiftwidth-arvolla
- << - vähennä sisennystä (siirrä vasemmalle) yhdellä shiftwidth-arvolla
- >% - sisennä () tai {} lohko (kursori sulkeella)
- <% - vähennä sisennystä () tai {} lohkolle (kursori sulkeella)
- >ib - sisennä sisempi () lohko
- >at - sisennä lohko <> tägeillä
- 3== - uudelleen sisennä kolme riviä
- =% - uudelleen sisennä () tai {} lohko (kursori sulkeella)
- =iB - uudelleen sisennä sisempi {} lohko
- gg=G - uudelleen sisennä koko bufferi
- ]p - liitä ja muokkaa sisennystä nykyiselle riville
Poistuminen
- :w - kirjoita (tallenna) tiedosto, mutta älä poistu
- :w !sudo tee % - kirjoite tiedosto sudolla
- :wq or :x or ZZ - kirjoita (tallenna) ja poistu
- :q - poistu (epäonnistuu, jos tiedostossa on tallentamattomia muutoksia)
- :q! or ZQ - poiustu ja hylkää tallentamattomat muutokset
- :wqa - kirjoita (tallenna) ja poistu kaikista välilehdistä
Etsi ja korvaa
- /pattern - etsi kaavaa
- ?pattern - etsi kaavaa taaksepäin
- \vpattern - 'very magic' kaava: ei-alfanumeeriset merkit tulkitaan regex-symboleina (ei tarvetta escapelle)
- n - toista haku samaan suuntaan
- N - toista haku toiseen suuntaan
- :%s/old/new/g - korvaa kaikki old → new koko tiedostossa
- :%s/old/new/gc - korvaa kaikki old → new koko tiedostossa varmistuksella
- :noh[lsearch] - poista korostus haku osumista
Etsi useasta tiedostosta
- :vim[grep] /pattern/ {`{file}`} - etsi kaavaa useasta tiedostosta
- :cn[ext] - hyppää seuraavaan osumaan
- :cp[revious] - hyppää edelliseen osumaan
- :cope[n] - avaa ikkuna nähdäksesi listan osumista
- :ccl[ose] - sulje quickfix ikkuna
Välilehdet
- :tabnew or :tabnew {page.words.file} - avaa tiedosto uudessa välilehdessä
- Ctrl + wT - siirrä nykyinen jaettu ikkuna omaan välilehteen
- gt or :tabn[ext] - siirry seuraavaan välilehteen
- gT or :tabp[revious] - siirry edelliseen välilehteen
- #gt - siirry välilehteen numero #
- :tabm[ove] # - siirrä nykyinen välilehti #:teen sijaintiin (alkaen nollasta)
- :tabc[lose] - sulje nykyinen välilehti ja sen kaikki ikkunat
- :tabo[nly] - sulje kaikki muut paitsi nykyinen välilehti
-
:tabdo command - aja
komento
kaikissa välilehdissä (esim.:tabdo q
- sulkee kaikki avatut välilehdet)
Usean tiedoston työstäminen
- :e[dit] tiedosto - muokkaa tiedostoa uudessa bufferissa
- :bn[ext] - mene seuraavaan bufferiin
- :bp[revious] - mene edelliseen bufferiin
- :bd[elete] - poista bufferi (sulje tiedosto)
- :b[uffer]# - mene bufferiin numero #
- :b[uffer] file - mene bufferiin tiedostonimellä
- :ls or :buffers - listaa kaikki avoimet bufferit
- :sp[lit] tiedosto - avaa tiedosto uudessa bufferissa ja jaa ikkuna
- :vs[plit] tiedosto - avaa tiedosto uudessa bufferissa ja jaa ikkuna vertikaalisesti
- :vert[ical] ba[ll] - muokkaa kaikkia buffereita vertikaalisina ikkunoina
- :tab ba[ll] - muokkaa kaikki buffereita välilehtinä
- Ctrl + ws - jaa ikkuna
- Ctrl + wv - jaa ikkuna vertikaalisesti
- Ctrl + ww - vaihda ikkunaa
- Ctrl + wq - sulje ikkuna
- Ctrl + wx - vaihda nykyinen ikkuna seuraavan kanssa
- Ctrl + w= - tee kaikista ikkunoista yhtä korkeita ja leveitä
- Ctrl + wh - siirrä kursori vasempaan ikkunaan (vertikaalisessa jaossa)
- Ctrl + wl - siirrä kursori oikeaan ikkunaan (vertikaalisessa jaossa)
- Ctrl + wj - siirrä kursori alempaan ikkunaan (horisontaalisessa jaossa)
- Ctrl + wk - siirrä kursori ylempään ikkunaan (horisontaalisessa jaossa)
- Ctrl + wH - tee nykyisestä ikkunasta koko terminaali-ikkunan korkuinen vasempaan reunaan (vasemmanpuoleisin pystyikkuna)
- Ctrl + wL - tee nykyisestä ikkunasta koko terminaali-ikkunan korkuinen oikeaan reunaan (oikeanpuoleisin pystyikkuna)
- Ctrl + wJ - tee nykyisestä ikkunasta koko terminaali-ikkunan levyinen alas (alin vaakaikkuna)
- Ctrl + wK - tee nykyisestä ikkunasta koko terminaali-ikkunan levyinen ylös (ylin vaakaikkuna)
Diff
- zf - määrittele taitos manuaalisesti seuraavaan liikkeeseen asti
- zd - poista kursorin alla oleva taitos
- za - avaa tai sulje kursorin alla oleva taitos
- zo - avaa kursorin alla oleva taitos
- zc - sulje kursorin alla oleva taitos
- zr - avaa kaikkia taitoksia yhdellä tasolla
- zm - sulje kaikki taitoksia yhdellä tasolla
- zi - vaihda taitto ominaisuus päälle tai pois
- ]c - hyppää seuraavan muutoksen alkuun
- [c - hyppää edellisen muutoksen alkuun
- do or :diffg[et] - hae erot (toisesta bufferista)
- dp or :diffpu[t] - laita erot (toiseen bufferiin)
- :diffthis - ota nykyinen ikkuna mukaan diffiin
- :dif[fupdate] - päivitä erot
- :diffo[ff] - sulje diff-tila nykyisestä ikkunasta