Umumiy

  • :h[elp] kalit so‘z - kalit so‘z uchun yordamni ochish keyword
  • :sav[eas] fayl - fayl nomi bilan saqlash
  • :clo[se] - joriy panelni yopish
  • :ter[minal] - terminal oynasini ochish
  • K - kursor ostidagi so‘z uchun qo‘llanmani ochish
Tip Vimning birinchi buyruqlarini o‘rganish uchun terminalda vimtutor bajaring.

Kursorni ko‘chirish

  • h - kursorni chapga surish
  • j - kursorni pastga surish
  • k - kursorni yuqoriga surish
  • l - kursorni o‘ngga surish
  • gj - kursorni pastga siljitish (ko‘p satrli matn)
  • gk - kursorni yuqoriga surish (ko‘p satrli matn)
  • H - ekran boshiga o‘tish
  • M - ekranning o‘rtasiga o‘tish
  • L - ekranning oxiriga o‘tish
  • w - so‘z boshida oldinga o‘tish
  • W - so‘z boshida oldinga siljitish (so‘zda tinish belgilari bo‘lishi mumkin)
  • e - so‘z oxirida oldinga siljitish
  • E - so‘z oxirida oldinga siljitish (so‘zda tinish belgilari bo‘lishi mumkin)
  • b - so‘z boshida orqaga qaytish
  • B - so‘z boshiga qaytish (so‘zda tinish belgilari bo‘lishi mumkin)
  • ge - so‘z oxirida orqaga qaytish
  • gE - so‘zning oxiriga qaytish (so‘zda tinish belgilari bo‘lishi mumkin)
  • % - mos juftlik belgisiga o‘tish (odatiy qo‘llab-quvvatlanadigan juftliklar:’() ’, ’{}’, ’[]’ - qo‘shimcha ma’lumot olish uchun Vim ilovasida :h matchpairs ishlating)
  • 0 - satr boshiga o‘tish
  • ^ - satrning birinchi probelsiz belgisiga o‘tish
  • $ - satr oxiriga o‘tish
  • g_ - satrdagi oxirgi bo‘sh bo‘lmagan belgiga o‘tish
  • gg - hujjatning birinchi qatoriga o‘tish
  • G - hujjatning oxirgi satriga o‘tish
  • 5gg or 5G - beshinchi satrga ko‘chirish
  • gd - mahalliy e’longa o‘tish
  • gD - global e’longa o‘tish
  • fx - x belgisining keyingi kirishiga o‘tish
  • tx - x belgisining keyingi kiritilishidan oldin siljitish
  • Fx - x belgisining oldingi kiritilishiga o‘tish
  • Tx - oldingi x belgisi kiritilishidan oldin siljitish
  • ; - oldingi ko‘chishni takrorlash f, t, F yokiT
  • , - oldingi f, t, F yoki T ko‘chishni teskari tartibda takrorlash
  • } - keyingi paragrafga o‘tish (yoki kodni tahrirlashda funksiyalar/blok)
  • { - oldingi paragrafga (yoki kodni tahrirlashda funksiya/blokga) o‘tish
  • zz - kursorni ekranda markazlashtirish
  • zt - kursorni ekranning yuqori qismida joylashtiring
  • zb - kursorni ekranning pastki qismida joylashtiring
  • Ctrl + e - ekranni bir qator pastga siljitish (kursorni siljitmasdan)
  • Ctrl + y - ekranni bir qator yuqoriga siljitish (kursorni siljitmasdan)
  • Ctrl + b - butun ekranga qaytish
  • Ctrl + f - butun ekranga oldinga siljish
  • Ctrl + d - ekranning yarmiga oldinga siljish
  • Ctrl + u - ekranning yarmiga orqaga siljish
Tip Kursorni siljitish buyrug‘ini takrorlash uchun uning oldiga son qo‘shing. Masalan, 4j kursorni 4 qator pastga siljitadi.

Kiritish rejimi - matn kiritish/kiritish

  • i - kursor oldidagi qo‘shimcha
  • I - satr boshiga qo‘yish
  • a - kursordan keyin qo‘yish
  • A - satr oxiriga qo‘yish
  • o - joriy qator ostiga yangi qator qo‘shish
  • O - joriy qator ustiga yangi qator qo‘shish
  • ea - so‘z oxiridan keyin qo‘shish
  • Ctrl + h - kiritish rejimida kursor oldidagi belgini o‘chirish
  • Ctrl + w - kiritish rejimida kursor oldidagi so‘zni olib tashlash
  • Ctrl + j - kiritish rejimida yangi qatorga o‘tish
  • Ctrl + t - kiritish rejimida qatorga bitta chekinish qo‘shish (o‘ngga surish)
  • Ctrl + d - kiritish rejimida satrdan bitta nuqtani olib tashlash (chapga surish)
  • Ctrl + n - kiritish rejimida kursor oldidagi quyidagi moslikni kiritish (avtomatik kiritish)
  • Ctrl + p - kiritish rejimida kursor oldidagi oldingi moslikni kiritish (avtomatik kiritish)
  • Ctrl + rx - x registrining mundarijasini qo‘yish
  • Ctrl + ox - normal rejimni vaqtincha yoqing va normal rejim x buyrug‘ini bajarish.
  • Esc or Ctrl + c - kiritish rejimidan chiqish

Tahrirlash

  • r - bitta simvolni almashtirish
  • R - ESC tugmasini bosishdan oldin bir nechta belgini almashtiring.
  • J - pastki qatorni joriy qatorga qo‘shish
  • gJ - pastki qatorni joriy qatorga bo‘sh joy qoldirmasdan qo‘shish
  • gwip - azbasni qayta kompanovka qilish
  • g~ - kursorni siljitish davomida registrni inversiyalash
  • gu - kursorni siljitish davomida yuqori registrga o‘tkazish
  • gU - kursorni siljitish davomida pastki registrga o‘tkazish
  • cc - butun satrni almashtirish
  • c$ or C - satr oxirigacha almashtirish
  • ciw - butun so‘zni o‘zgartirish
  • cw or ce - so‘zning oxirigacha almashtirish
  • s - belgini o‘chirish va matnni almashtirish
  • S - satrni olib tashlash va matnni almashtirish (cc bilan bir xil)
  • xp - ikkita harfning o‘rnini almashtirish (o‘chirish va qo‘yish)
  • u - bekor qilish
  • U - oxirgi o‘zgartirilgan satrni tiklash
  • Ctrl + r - takrorlash
  • . - oxirgi buyruqni takrorlash

Matnni belgilash (vizual rejim)

  • v - matnni belgilash rejimini yoqish, satrlarni belgilash, keyin buyruqni bajarish (masalan, y-nusxa olish)
  • V - satrma-satr tanlash rejimini yoqish
  • o - belgilangan sohaning boshqa chetiga o‘tish
  • Ctrl + v - bloklarni ajratish rejimini yoqish
  • O - blokning boshqa burchagiga ko‘chirish
  • aw - so‘zni ajratib ko‘rsatish
  • ab - dagi blok ()
  • aB - {} ichidagi blok
  • at - <> ta tegdagi blok
  • ib - ichidagi blok ()
  • iB - {} ichidagi ichki blok
  • it - <> ta tegdagi ichki blok
  • Esc or Ctrl + c - matnni belgilash rejimidan chiqish
Tip b va B o‘rniga mos ravishda ( va { ni ham ishlatish mumkin.

Vizual buyruqlar

  • > - matnni o‘ngga surish
  • < - matnni chapga surish
  • y - ajratilgan matndan nusxa ko‘chirish
  • d - belgilangan matnni o‘chirish
  • ~ - registrni almashtirish
  • u - ajratilgan matnni quyi registrga o‘tkazish
  • U - belgilangan matnni yuqori registrga o‘tkazishр

Registrlar

  • :reg[isters] - registrlar tarkibini ko‘rsatish
  • "xy - tarkibni x registriga joylashtirish
  • "xp - x registrining mundarijasini qo‘yish
  • "+y - almashinuv buferining tizim registriga nusxa olish
  • "+p - almashinuv buferining tizim registridan qo‘yish
Tip Registrlar tarkibi ~/.viminfo da saqlanadi va keyingi safar vim ishga tushirilganda tiklanadi.
Tip Maxsus registrlar:

0 - oxirgi nusxa olish
" - nomsiz registr: oxirgi marta o‘chirilgan yoki nusxalangan
% - joriy fayl nomi
# - muqobil fayl nomi
* - bufer kontenti (birlamchi X11)
+ - bufer kontenti (X11 bufer kontenti)
/ - oxirgi qidiruv namunasi
: - oxirgi komanda
. - oxirgi kiritilgan matn
- - oxirgi kichik (satrdan kichik) o‘chirish
= - ifoda qiymatini qaytaruvchi registr
_ - qora tuynuk registri

Yorliqlar

  • :marks - yorliqlar ro‘yxati
  • ma - joriy pozitsiyada A belgisini o‘rnatish
  • `a - A belgiga o‘tish
  • y`a - A belgisigacha nusxalash
  • `0 - Vim oxirgi marta yopilgan joyga o‘tish
  • `" - ushbu fayl oxirgi marta yopilgan joyga o‘tish
  • `. - ushbu faylning oxirgi tahrirlangan joyiga o‘tish
  • `` - oxirgi o‘tish oldidan pozitsiyaga o‘tish
  • :ju[mps] - o‘tishlar ro‘yxatini ochish
  • Ctrl + i - o‘tishlar ro‘yxatida yangi o‘tishga o‘tish
  • Ctrl + o - o‘tishlar ro‘yxatidagi eskiroq o‘tishga o‘tish
  • :changes - o‘zgarishlar ro‘yxatini ochish
  • g, - o‘zgarishlar ro‘yxatidagi yangi o‘zgarishga o‘tish
  • g; - o‘zgarishlar ro‘yxatidagi eskiroq o‘zgarishga o‘tish
  • Ctrl + ] - kursor ostidagi tegga o‘tish
Tip Belgiga o‘tish uchun yon urg‘u belgisi () va tutuq belgisi () dan foydalanishingiz mumkin. Tutuq belgisidan foydalanish belgini o‘z ichiga olgan satr boshiga (birinchi bo‘sh bo‘lmagan) o‘tkazadi.

Makroslar

  • qa - A makrosni yozish
  • q - makros yozuvini to‘xtatish
  • @a - A makrosni bajarish
  • @@ - oxirgi makrosni bajarish

Qirqib olish va joylash

  • yy - satrni nusxalash
  • 2yy - 2 qatorni nusxalash
  • yw - so‘zdan nusxa ko‘chirish
  • yiw - so‘zni kursor ostiga ko‘chirish
  • yaw - kursor ostidagi so‘zni va undan oldingi yoki keyingi bo‘shliqni nusxalash
  • y$ or Y - satr oxirigacha ko‘chirish
  • p - kursordan keyin almashinuv buferini qo‘yish
  • P - kursor oldiga vaqtinchalik xotirani qo‘yish
  • gp - kursordan keyin buferni qo‘yish va qo‘yilgan matndan keyin kursorni siljitish
  • gP - almashinuv buferini kursor oldidan qo‘yish va qo‘yilgan matndan keyin kursorni siljitish
  • dd - satrni o‘chirish (qirqib olish)
  • 2dd - 2 ta qatorni o‘chirish (qirqib olish)
  • dw - so‘zni o‘chirib tashlash
  • diw - kursor ostidagi so‘zni o‘chirish (qirqib olish)
  • daw - kursor ostidagi so‘zni va undan oldingi yoki keyingi bo‘shliqni olib tashlash (kesib tashlash)
  • :3,5d - 3 dan 5 gacha qatorlarni o‘chirish
Tip Diapazonni belgilash uchun quyidagi belgilardan ham foydalanishingiz mumkin:
e.g.

:.,$d - Joriy qatordan fayl oxirigacha
:.,1d - Joriy satrdan fayl boshiga
:10,1d - 10-satrdan faylning boshigacha

  • :g/{pattern}/d - patterni o‘z ichiga olgan barcha qatorlarni o‘chirishn
  • :g!/{pattern}/d - grafik kalitga ega bo‘lmagan barcha qatorlarni o‘chirish
  • d$ or D - satr oxirigacha o‘chirish (qirqib olish)
  • x - belgini o‘chirish (qirqib olish)

Matndagi chekinishlar

  • >> - satrga bitta chekinish qo‘shish (o‘ngga surish)
  • << - satrdan bir nuqtani olib tashlash (chapga surish)
  • >% - () yoki {}da blokga bitta chekinish qo‘shish
  • <% - () yoki {} bilan blokni de-indent qilish (kursor qavsda)
  • >ib - ichki blokga chekinishni () ga o‘zgartirish
  • >at - <> ta tegda chekinishni blokka o‘zgartirish
  • 3== - 3 ta satrning chetga chiqishini tekislash
  • =% - () yoki {} da blok chekkalarini tekislash
  • =iB - blok chekinishlarini {} ga tenglashtirish
  • gg=G - butun buferni tekislash
  • ]p - Kursor ostidagi satr bo‘yicha chetlanishlarni qo‘yish va tekislash

Chiqish va saqlash

  • :w - faylni saqlash, lekin chiqmaslik
  • :w !sudo tee % - faylni sudo bilan saqlash
  • :wq or :x or ZZ - faylni saqlash va chiqish
  • :q - chiqish (agar o‘zgarishlar saqlanmasa, muvaffaqiyatsizlikka uchraydi)
  • :q! or ZQ - saqlanmasdan chiqish
  • :wqa - barcha varaqlar va buferlarga yozish (saqlash) va chiqish

Qidirish va almashtirish

  • /pattern - shablon qidirish
  • ?pattern - shablonni teskari qidirish
  • \vpattern - very magic rejimi: barcha alifbo-raqamli bo‘lmagan belgilar maxsus deb talqin qilinadi (ekranlash shart emas)
  • n - bir xil yo‘nalishda qidirishni takrorlash
  • N - qidiruvni teskari yo‘nalishda takrorlash
  • :%s/old/new/g - fayldagi barcha shablon kirishlarini ko‘rsatilgan qiymatga almashtirish
  • :%s/old/new/gc - fayldagi barcha shablon kirishlarini tasdiqlash bilan ko‘rsatilgan qiymatga almashtirish
  • :noh[lsearch] - qidiruv natijalarini yoritishni faolsizlantirish

Bir nechta fayldan qidirish

  • :vim[grep] /pattern/ {`{file}`} - bir nechta fayllarda shablon bo‘yicha qidirish
e.g. :vim[grep] /foo/ **/*
  • :cn[ext] - keyingi moslikka o‘tish
  • :cp[revious] - oldingi tasodifga o‘tish
  • :cope[n] - natijalar ro‘yxati oynasini ochish
  • :ccl[ose] - natijalar ro‘yxati oynasini yopish

Varaqlar

  • :tabnew or :tabnew {page.words.file} - faylni yangi varaqda ochish
  • Ctrl + wT - joriy oynani o‘z sahifasiga ko‘chirish
  • gt or :tabn[ext] - keyingi varaqqa o‘tish
  • gT or :tabp[revious] - avvalgi varaqqa o‘tish
  • #gt - # ta varaqqa almashish
  • :tabm[ove] # - joriy varaqni # ta pozitsiyaga ko‘chirish (0 dan boshlab raqamlangan)
  • :tabc[lose] - joriy varaq va uning barcha oynalarini yopish
  • :tabo[nly] - joriy varaqdan tashqari barcha varaqlarni yopish
  • :tabdo command - barcha varaqlarda buyruq bajaring (masalan, :tabdo q barcha ochiq varaqlarni yopadi)

Bir nechta fayl bilan ishlash

  • :e[dit] fayl - faylni yangi buferda tahrirlash
  • :bn[ext] - keyingi buferga o‘tish
  • :bp[revious] - oldingi buferga o‘tish
  • :bd[elete] - buferni olib tashlash (faylni yopish)
  • :b[uffer]# - # raqamli buferga o‘tish
  • :b[uffer] file - fayl nomi bilan buferga o‘tish
  • :ls or :buffers - barcha ochiq buferlar ro‘yxati
  • :sp[lit] fayl - faylni yangi buferda ochish va oynani ajratish
  • :vs[plit] fayl - faylni yangi buferda ochish va oynani vertikal ravishda ajratish
  • :vert[ical] ba[ll] - barcha buferlarni vertikal oyna sifatida ochish
  • :tab ba[ll] - barcha buferlarni varaq sifatida ochish
  • Ctrl + ws - derazani ikkiga bo‘lish
  • Ctrl + wv - derazani vertikal bo‘laklarga ajratish
  • Ctrl + ww - oynalarni almashlab ulash
  • Ctrl + wq - derazani yopish
  • Ctrl + wx - joriy oynani keyingisi bilan almashtirish
  • Ctrl + w= - barcha derazalarni bir xil balandlikda va kenglikda qilish
  • Ctrl + wh - kursorni chap oynaga ko‘chirish (vertikal ajratish)
  • Ctrl + wl - kursorni o‘ng oynaga ko‘chirish (vertikal ajratish)
  • Ctrl + wj - kursorni quyidagi oynaga ko‘chirish (gorizontal ajratish)
  • Ctrl + wk - kursorni yuqoridagi oynaga ko‘chirish (gorizontal ajratish)
  • Ctrl + wH - joriy oynani balandligi bo‘yicha maksimal va chapdan eng chekkasi (eng chap vertikal oyna) qilib belgilash
  • Ctrl + wL - joriy oynani balandligi bo‘yicha maksimal va o‘ng tomondagi eng chekka oynaga aylantirish (eng o‘ng vertikal oyna)
  • Ctrl + wJ - joriy oynani kengligi bo‘yicha maksimal va pastdan eng chekka (eng pastki gorizontal oyna) qilish
  • Ctrl + wK - joriy oynani kengligi bo‘yicha maksimal va yuqoridan eng chekka (eng yuqori gorizontal oyna) qilish

Fayllardagi farqlar

  • zf - kursorni siljitish jarayonida o‘ramni qo‘lda aniqlash
  • zd - kursor ostidagi o‘ramni o‘chirish
  • za - kursor ostidagi o‘ram holatini o‘zgartirish
  • zo - o‘ramni kursor ostida ochish
  • zc - o‘ramni kursor ostida o‘rash
  • zr - barcha o‘ramlarni bir xil darajada ochish
  • zm - barcha o‘ramlarni bir xil darajaga o‘rash
  • zi - buferdagi barcha o‘ramlar holatini o‘zgartirish
  • ]c - keyingi farqning boshiga o‘tish
  • [c - avvalgi farqning boshiga o‘tish
  • do or :diffg[et] - farqlarni nusxalash (boshqa buferdan)
  • dp or :diffpu[t] - farqlarni qo‘yish (boshqa buferga)
  • :diffthis - joriy oynani taqqoslash oynasining bir qismiga aylantirish
  • :dif[fupdate] - farqlarni yangilash
  • :diffo[ff] - joriy oyna uchun taqqoslash rejimini faolsizlantirish
Tip O‘ram buyruqlari (masalan, za) bir xil joylashuv darajasida ishlaydi. Barcha darajalarda ishlash uchun bosh harflardan foydalaning (masalan, zA).
Tip Fayllardagi farqlarni ko‘rish uchun terminal vimdiff orqali taqqoslash rejimida to‘g‘ridan-to‘g‘ri Vimni ishga tushirish mumkin. Uni git difftool qilib ham o‘rnatish mumkin.