Ĉiea

  • :h[elp] ŝlosilvorto - malfermi helpopaĝon por ŝlosilvorto
  • :sav[eas] dosiero - konservi dosieron kiel ...
  • :clo[se] - fermi nunan fenestron
  • :ter[minal] - malfermi fenestron terminalan
  • K - malfermi paĝon man por vorto sub la montrilo
Tip Aktivigi vimtutor en terminalo por lerni la unuaj postuloj de Vim.

Movado de la Montrilo

  • h - movi montrilon maldekstren
  • j - movi montrilon malsupren
  • k - movi montrilon supren
  • l - movi montrilon dekstren
  • gj - movi montrilon malsupren (multlinia teksto)
  • gk - movi montrilon supren (multlinia teksto)
  • H - movi montrilon al la supro de la ekrano
  • M - movi montrilon al la mezo de la ekrano
  • L - movi montrilon al la bazo de la ekrano
  • w - salti antaŭen al la komenco de vorto
  • W - salti antaŭen al la komenco de vorto (vortoj povas enhavi interpunkciojn)
  • e - salti antaŭen al la fino de vorto
  • E - salti antaŭen al la fino de vorto (vortoj povas enhavi interpunkciojn)
  • b - salti malantaŭen al la komenco de vorto
  • B - salti malantaŭen al la komenco de vorto (vortoj povas enhavi interpunkciojn)
  • ge - salti malantaŭen al la fino de vorto
  • gE - salti malantaŭen al la fino de vorto (vortoj povas enhavi interpunkciojn)
  • % - movi al para signo (defaŭlte subtenitaj paroj: '()', '{}', '[]' - uzu :h matchpairs en vim por pli da informo)
  • 0 - salti al la komenco de la linio
  • ^ - salti al la unua neblanka signo de la linio
  • $ - salti al la fino de la linio
  • g_ - salti al la fina neblanka signo de la linio
  • gg - iri al la unua linio de la dosiero
  • G - iri al la fina linio de la dosiero
  • 5gg or 5G - iri al linio 5
  • gd - movi montrilon al loka deklaro
  • gD - movi montrilon al ĉiea deklaro
  • fx - salti al la sekva okazo de la signo x
  • tx - salti antaŭ la sekvan okazon de la signo x
  • Fx - salti al la lasta okazo de la signo x
  • Tx - salti post la lastan okazon de la signo x
  • ; - refari la lastan movadon f, t, F, aŭ T
  • , - refari la lastan movadon f, t, F, aŭ T, male
  • } - salti al la sekva paragrafo (aŭ funkcio/bloko, redaktante kodon)
  • { - salti al la lasta paragrafo (aŭ funkcio/bloko, redaktante kodon)
  • zz - centrigi montrilon en la ekrano
  • zt - position cursor on top of the screen
  • zb - position cursor on bottom of the screen
  • Ctrl + e - movi ekranon suben unu linion (sen movigi montrilon)
  • Ctrl + y - movi ekranon supren unu linion (sen movigi montrilon)
  • Ctrl + b - movi malantaŭen unu tutan ekranon
  • Ctrl + f - movi antaŭen unu tutan ekranon
  • Ctrl + d - movi antaŭen duonon de ekrano
  • Ctrl + u - movi malantaŭen duonon de ekrano
Tip Sekvigi montrilmovadon per nombro por ripeti ĝin. Ekzemple, 4j movas la montrilon suben kvar liniojn.

Inserta modo - inserti/aldoni tekston

  • i - inserti antaŭ la montrilo
  • I - inserti ĉe la komenco de la linio
  • a - inserti (aldoni) post la montrilo
  • A - inserti (aldoni) ĉe la fino de la linio
  • o - aldoni novan linion sub la nuna linio
  • O - alsoni novan linion super la nuna linio
  • ea - inserti (aldoni) ĉe la fino de la vorto
  • Ctrl + h - forigi la signo antaŭ la signo dum la inserta modo
  • Ctrl + w - forigi la vorto antaŭ la montrilo dum la inserta modo
  • Ctrl + j - komenci novan linion dum la inserta modo
  • Ctrl + t - krei krommarĝenon ĉe la komenco de la linio (movi dekstren) dum la inserta modo
  • Ctrl + d - forigi krommarĝenon ĉe la komenco de la linio (movi maldekstren) dum la inserta modo
  • Ctrl + n - inserti (aŭtomate kompletigi) la sekvan kongruon antaŭ la montrilo dum la inserta modo
  • Ctrl + p - inserti (aŭtomate kompletigi) la lastan kongruon antaŭ la montrilo dum la inserta modo
  • Ctrl + rx - inserti la enhavon de la reĝistro x
  • Ctrl + ox - provizore eniri normalan modon por fari unu normalmodan postulon x
  • Esc or Ctrl + c - eliri insertan modon

Redaktado

  • r - anstataŭigi unu signon
  • R - anstataŭigi pli ol unu signon, ĝis vi klakas ESC
  • J - kunigi suban linion al la nuna kun unu spaco inter ili
  • gJ - kunigi suban linion al la nuna sen intera spaco
  • gwip - aranĝi nunan paragrafon
  • g~ - maligi majusklecon ĝis movado
  • gu - ŝanĝi tekston en minusklon ĝis movado
  • gU - ŝanĝi tekston en majusklon ĝis movado
  • cc - ŝanĝi tutan linion
  • c$ or C - ŝanĝi ĝis la fino de la linio
  • ciw - ŝanĝi tutan vorton
  • cw or ce - ŝanĝi ĝis la fino de la vorto
  • s - forigi signon kaj anstataŭigi tekston
  • S - forigi linion kaj anstataŭigi tekston (same al cc)
  • xp - anstataŭigi du signojn (forigi kaj alglui)
  • u - malfari
  • U - malfari la laste ŝanĝitan linion
  • Ctrl + r - refari
  • . - ripeti la lastan postulon

Marki tekston (vida modo)

  • v - komenci vidan modon, marki liniojn, kaj fari postulon (kiel y-yank)
  • V - komenci polinan vidan modon
  • o - movi montrilon al la alia flanko de la markita areo
  • Ctrl + v - komenci blokan vidan modon
  • O - movi montrilon al la alia angulo de la bloko
  • aw - marki vorton
  • ab - bloko per ()
  • aB - bloko per {}
  • at - bloko per etikedoj <>
  • ib - ena bloko per ()
  • iB - ena bloko per {}
  • it - ena bloko per etikedoj <>
  • Esc or Ctrl + c - eliri vida modo
Tip Anstataŭ bB, oni povas ankaŭ uzi ({ respektive.

Vidaj postuloj

  • > - ŝovi tekston dekstren
  • < - ŝovi tekston maldekstren
  • y - kopii markitan tekston
  • d - forigi markitan tekston
  • ~ - maligi majusklecon
  • u - ŝanĝi markitan tekston en minusklon
  • U - ŝanĝi markitan tekston en majusklon

Reĝistroj

  • :reg[isters] - montri enhavojn de la reĝistroj
  • "xy - kopii en registron x
  • "xp - alglui enhavon de reĝistro x
  • "+y - kopii en sisteman tondujan reĝistron
  • "+p - alglui el la sisteman tondujan reĝistron
Tip Oni tenas reĝistrojn en ~/.viminfo, kaj ŝarĝas ilin denove je la sekva rekomenco de vim.
Tip Specialaj reĝistroj:

0 - lasta kopio
" - sennoma reĝistro, lasta forigo aŭ kopio
% - nuna dosiernomo
# - alternativa dosiernomo
* - enhavo de la tondujo (X11 ĉefa)
+ - enhavo d la tondujo (X11 tondujo)
/ - lasta serĉesprimo
: - lasta postullinio
. - laste enmetita teksto
- - lasta malgranda (malpli ol linio) forigo
= - reĝistro esprimo
_ - reĝistro nigra truo

Markoj kaj lokoj

  • :marks - listo de markoj
  • ma - meti markon A en nuna loko
  • `a - salti al loko de marko A
  • y`a - kopii teksto ĝis loko de marko A
  • `0 - iru al la loko kie oni laste eliris Vim
  • `" - iru al la loko kie oni estis kiam laste redakti ĉi tiun dosieron
  • `. - iru al la loko de la lasta ŝanĝo en ĉi tiu dosiero
  • `` - iru al la loko antaŭ ol la lasta salto
  • :ju[mps] - saltlisto
  • Ctrl + i - iru al pli lasta loko en la saltlisto
  • Ctrl + o - iru al malpli lasta loko en la saltlisto
  • :changes - ŝanĝlisto
  • g, - iru al pli lasta loko en la ŝanĝlisto
  • g; - iru al la malpli lasta loko en la saltlisto
  • Ctrl + ] - salti al la etikedo sub la montrilo
Tip Oni povas salti al marko per aŭ malapostrofo (`) aŭ apostrofo ('). Per apostrofo, al la komenco (unua neblanka) de la linio kun la marko.

Macrooj

  • qa - registri macroon a
  • q - ĉesi registri macroon
  • @a - aktivigi macroon a
  • @@ - reaktivigi laste aktivigitan macroon

Tranĉi kaj alglui

  • yy - kopii linion
  • 2yy - kopii du liniojn
  • yw - kopii la signojn de la vorto de la montrilloko ĝis la komenco de la sekva vorto
  • yiw - kopii la vorton sub la montrilo
  • yaw - kopii la vorton sub la montrilo kaj la spacon antaŭ ĝi aŭ post ĝi
  • y$ or Y - kopii ĝis la fino de la linio
  • p - alglui la tondujon post la montrilo
  • P - alglui antaŭ la montrilo
  • gp - alglui post la montrilo kaj meti la montrilon post la nova teksto
  • gP - alglui antaŭ la montrilo kaj meti la montrilon post la nova teksto
  • dd - forigi (tranĉi) linion
  • 2dd - forigi (tranĉi) du liniojn
  • dw - forigi (tranĉi) la signojn de la vorto de la montrilloko ĝis la komenco de la sekva vorto
  • diw - forigi (tranĉi) la vorton sub la montrilo
  • daw - forigi (tranĉi) la vorton sub la montrilo kaj la spacon antaŭ ĝi aŭ post ĝi
  • :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,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 - forigi (tranĉi) ĝis la fino de la linio
  • x - forigi (tranĉi) signon

Krei krommarĝenojn

  • >> - krei krommarĝenon (ŝovi dekstren) por linio unu ŝovlongon
  • << - forigi krommarĝenon (ŝovi maldekstren) por linio unu ŝovlongon
  • >% - krei krommarĝenojn sur bloko kun () aŭ {} (montrilo sur krampo)
  • <% - de-indent a block with () or {} (cursor on brace)
  • >ib - krei krommarĝenojn sur ena bloko kun ()
  • >at - krei krommarĝenojn sur bloko kun etikedoj <>
  • 3== - rekrei krommarĝenojn por 3 linioj
  • =% - rekrei krommarĝenojn sur bloko kun () aŭ {} (montrilo sur krampo)
  • =iB - rekrei krommarĝenon sur ena bloko kun {}
  • gg=G - rekrei krommarĝenon sur tuta bufro
  • ]p - alglui kaj ĝustigi krommarĝenojn por nuna linio

Elirado

  • :w - konservi dosieron, sed ne eliri
  • :w !sudo tee % - konservi la nunan dosieron per sudo
  • :wq or :x or ZZ - konservi kaj eliri
  • :q - eliri (malsukcese se estas nekonservitaj ŝanĝoj)
  • :q! or ZQ - eliri kaj forigi nekonservitajn ŝanĝojn
  • :wqa - konservi kaj eliri ĉiujn fenestrojnwrite

Serĉi kaj anstataŭigi

  • /pattern - serĉi per esprimo
  • ?pattern - serĉi malantaŭen por esprimo
  • \vpattern - 'magiega' esprimp: signojn kiuj ne estas literoj aŭ ciferoj oni legas kiel specialiajn RegEspajn signojn (nebezonante kodŝanĝan signon)
  • n - ripeti serĉon en la sama direkto
  • N - ripeti serĉon en la mala direkto
  • :%s/old/new/g - anstataŭigi ĉiujn malnovajn per novaj tra la dosiero
  • :%s/old/new/gc - anstataŭigi ĉiujn malnovajn per novaj tra la dosiero, kun jesigoj
  • :noh[lsearch] - forigi emfazon de serĉtrafoj

Serĉi tra pluraj dosieroj

  • :vim[grep] /pattern/ {`{file}`} - serĉi per esprimo tra pluraj dosieroj
e.g. :vim[grep] /foo/ **/*
  • :cn[ext] - salti al la sekva serĉtrafo
  • :cp[revious] - salti al la lasta serĉtrafo
  • :cope[n] - malfermi fenestron enhavantan la liston de serĉtrafoj
  • :ccl[ose] - fermi la fenestro rapidripar'

Langetoj

  • :tabnew or :tabnew {page.words.file} - malfermi dosieron en nova langeto
  • Ctrl + wT - movi nunan dividan fenestron al ĝia propra langeto
  • gt or :tabn[ext] - movi al la sekva langeto
  • gT or :tabp[revious] - movi al la lasta langeto
  • #gt - movi al langeto numero #
  • :tabm[ove] # - movi nunan langeton al la #a pozicio (0-indeksa)
  • :tabc[lose] - fermi nunan langeton kaj ĉiujn el ĝiaj fenestroj
  • :tabo[nly] - fermi ĉiujn langetojn krom la nuna
  • :tabdo command - fari la postulo en ĉiuj langetoj (ekz. :tabdo q fermas ĉiujn malfermajn langetojn)

Trakti plurajn dosierojn

  • :e[dit] dosiero - redakti dosieron en nova bufro
  • :bn[ext] - iri al la sekva bufro
  • :bp[revious] - iri al la lasta bufro
  • :bd[elete] - forigi bufron (fermi dosieron)
  • :b[uffer]# - iri al bufro per indekso #
  • :b[uffer] file - iri al bufro per dosiero
  • :ls or :buffers - listi ĉiujn malfermajn bufrojn
  • :sp[lit] dosiero - malfermi dosieron en nova bufro kaj dividi fenestron
  • :vs[plit] dosiero - malfermi dosieron en nova bufro kaj vertikale dividi fenestron
  • :vert[ical] ba[ll] - redakti ĉiujn bufrojn en vertikalaj fenestroj
  • :tab ba[ll] - redakti ĉiujn bufrojn en langetoj
  • Ctrl + ws - dividi fenestron
  • Ctrl + wv - vertikale dividi fenestron
  • Ctrl + ww - anstataŭigi fenestrojn
  • Ctrl + wq - eliri fenestron
  • Ctrl + wx - anstataŭigi nunan fenestron per la sekvan
  • Ctrl + w= - egaligi la alton kaj larĝon de ĉiuj fenestroj
  • Ctrl + wh - movi montrilon al la maldekstra fenestro (vertikala divido)
  • Ctrl + wl - movi montrilon al la dekstra fenestro (vertikala divido)
  • Ctrl + wj - movi montrilon al la suba fenestro (horizontala divido)
  • Ctrl + wk - movi montrilon al la supera fenestro (horizontala divido)
  • Ctrl + wH - farigi nunan fenestron plenalta ĉe la plej maldekstra vertikala fenestro
  • Ctrl + wL - farigi nunan fenestron plenalta ĉe la plej dekstra vertikala fenestro
  • Ctrl + wJ - farigi nunan fenestron plenlarĝa ĉe la plej suba horizontala fenestro
  • Ctrl + wK - farigi nunan fenestron plenlarĝa ĉe la plej supera horizontala fenestro

Dosierdiferenca

  • zf - difini faldon ĝis movado
  • zd - forigi faldon sub montrilo
  • za - inversigi faldon sub montrilo
  • zo - malfermi faldon sub montrilo
  • zc - fermi faldon sub montrilo
  • zr - malfermi ĉiujn faldojn unu nivelon
  • zm - fermi ĉiujn faldojn unu nivelon
  • zi - inversigi kapablecon de foldoj
  • ]c - salti al komenco de sekva ŝanĝo
  • [c - salti al komenco de lasta ŝanĝo
  • do or :diffg[et] - obteni diferencon (el alia bufro)
  • dp or :diffpu[t] - meti diferencon (al alia bufro)
  • :diffthis - farigi nunan fenestron parto de diferenco
  • :dif[fupdate] - ĝisdatigi diferencojn
  • :diffo[ff] - malaktivigi dosierdiferencan modon en nuna fenestro
Tip La postuloj por foldado (ekz. za) traktas nur unu nivelon. Por trakti ĉiujn nivelojn, uzu majusklajn literojn (ekz. zA).
Tip Por vidi la diferencojn inter dosieroj, oni povas rekte komenci Vim en dosierdiferenca modo per postuli vimdiff en terminalo. Oni povas eĉ nomi ĉi tiun kiel git difftool.