Genel

  • :h[elp] keyword - kelime için yardımı aç
  • :sav[eas] file - dosyayı farklı kaydet
  • :clo[se] - bölümü kapat
  • :ter[minal] - open a terminal window
  • K - imleç altındaki kelime için kılavuzu aç
Tip Run vimtutor in a terminal to learn the first Vim commands.

İmleç hareketleri

  • h - imleci sola kaydır
  • j - imleci aşağı kaydır
  • k - imleci yukarı kaydır
  • l - imleci sağa kaydır
  • gj - move cursor down (multi-line text)
  • gk - move cursor up (multi-line text)
  • H - ekranın en üstüne kaydır
  • M - ekranın ortasına kaydır
  • L - ekranın en altına kaydır
  • w - bir sonraki kelimenin başlangıcına atla
  • W - bir sonraki kelimenin başlangıcına atla (kelime noktalama işareti içerebilir)
  • e - bir sonraki kelimenin sonuna atla
  • E - bir sonraki kelimenin sonuna atla (kelime noktalama işareti içerebilir)
  • b - bir önceki kelimenin başlangıcına atla
  • B - bir önceki kelimenin başlangıcına atla (kelime noktalama işareti içerebilir)
  • ge - bir önceki kelimenin sonuna atla
  • gE - bir önceki kelimenin sonuna atla (kelime noktalama işareti içerebilir)
  • % - eşleşen karakterlere kaydır (varsayılan çiftler: '()', '{}', '[]' - daha fazla bilgi için :h matchpairs komutunu kullan)
  • 0 - satır başına atla
  • ^ - satır üzerindeki ilk boşluk olmayan karaktere atla
  • $ - satır sonuna atla
  • g_ - satırın boş olmayan son karakterine atla
  • gg - dokümanın ilk satırına git
  • G - dokümanın son satırına git
  • 5gg or 5G - 5. satıra git
  • gd - move to local declaration
  • gD - move to global declaration
  • fx - sonraki x karakter konumuna atla
  • tx - sonraki x karakter konumunun yanına atla
  • Fx - önceki x karakter konumuna atla
  • Tx - önceki x karakter konumunun yanına atla
  • ; - f, t, F veya T hareketlerini tekrar et
  • , - f, t, F veya T hareketlerini geriye doğru tekrar et
  • } - sonraki paragrafa atla (veya fonksiyon/blok, kod yazarken)
  • { - önceki paragrafa atla (veya fonksiyon/blok, kod yazarken)
  • zz - imleci ekranda ortala
  • zt - position cursor on top of the screen
  • zb - position cursor on bottom of the screen
  • Ctrl + e - ekranı bir satır aşağı kaydır (imleci hareket ettirmeden)
  • Ctrl + y - ekranı bir satır yukarı kaydır (imleci hareket ettirmeden)
  • Ctrl + b - tam ekran geri kaydır
  • Ctrl + f - tam ekran ileri kaydır
  • Ctrl + d - yarım ekran ileri kaydır
  • Ctrl + u - yarım ekran geri kaydır
Tip İmleç hareketleri komutlarından önce verilen sayı kadar komut çalıştırılır. Örneğin, 4j 4 satır aşağıya gider.

Ekleme modu - yazma/ekleme modu

  • i - imleçden önce ekler
  • I - satır başına ekler
  • a - imleç sonrasına ekler
  • A - satır sonuna ekler
  • o - şu anki satırın altına yeni satır ekler ekler
  • O - şu anki satırın üstüne yeni satır ekler ekler
  • ea - kelimenin sonuna ekler
  • Ctrl + h - ekleme modunda imleçden önceki karakteri siler
  • Ctrl + w - ekleme modunda imleçden önceki kelimeyi siler
  • Ctrl + j - ekleme modunda yeni bir satır ekler
  • Ctrl + t - ekleme modunda sağa doğru yeni bir girinti ekler
  • Ctrl + d - ekleme modunda bir girinti siler
  • Ctrl + n - insert (auto-complete) next match before the cursor during insert mode
  • Ctrl + p - insert (auto-complete) previous match before the cursor during insert mode
  • Ctrl + rx - insert the contents of register x
  • Ctrl + ox - Temporarily enter normal mode to issue one normal-mode command x.
  • Esc or Ctrl + c - ekleme modundan çıkar

Düzenleme

  • r - tek karakterin yerine koyar
  • R - replace more than one character, until ESC is pressed.
  • J - şu anki satırın altına ekler
  • gJ - join line below to the current one without space in between
  • gwip - reflow paragraph
  • g~ - switch case up to motion
  • gu - change to lowercase up to motion
  • gU - change to uppercase up to motion
  • cc - tüm satırı değiştirir (yerine koyar)
  • c$ or C - satır sonuna kadar değiştirir (yerine koyar)
  • ciw - change (replace) entire word
  • cw or ce - kelimenin sonuna kadar değiştirir (yerine koyar)
  • s - karakteri siler ve metin ile değiştirir
  • S - satırı siler ve metin ile değiştirir (cc komutu ile aynı)
  • xp - iki harfi transpoze eder (sil ve yapıştır)
  • u - geri al
  • U - restore (undo) last changed line
  • Ctrl + r - ileri al
  • . - son komutu tekrarla

Metin işaretleme (görsel mod)

  • v - görsel modu başlat, satırları işaretle, bir komut gir (y-yank gibi)
  • V - görsel modu tüm satırı işaretleyerek başlatır
  • o - diğer işaretlenmiş alanın sonuna gider
  • Ctrl + v - görsel blok moduna başlar
  • O - bloğun diğer köşesine gider
  • aw - kelimeyi işaretle
  • ab - () ile bloklar
  • aB - {} ile bloklar
  • at - a block with <> tags
  • ib - () içerisini bloklar
  • iB - {} içerisini bloklar
  • it - inner block with <> tags
  • Esc or Ctrl + c - görsel moddan çık
Tip Instead of b or B one can also use ( or { respectively.

Görsel komutlar

  • > - metni sağa kaydır
  • < - metni sola kaydır
  • y - işaretlenmiş metni kopyala
  • d - işaretlenmiş metni sil
  • ~ - harfleri büyükse küçük, küçükse büyük yap
  • u - change marked text to lowercase
  • U - change marked text to uppercase

Registerlar

  • :reg[isters] - register içeriğini göster
  • "xy - register x içerisini kopyalar
  • "xp - register x'in içeriğini yapıştırır
  • "+y - yank into the system clipboard register
  • "+p - paste from the system clipboard register
Tip Registerlar ~/.viminfo içerisinde depolanıyor ve vim'i yeniden başlattığınızda yüklenecektir
Tip Special registers:

0 - last yank
" - unnamed register, last delete or yank
% - current file name
# - alternate file name
* - clipboard contents (X11 primary)
+ - clipboard contents (X11 clipboard)
/ - last search pattern
: - last command-line
. - last inserted text
- - last small (less than a line) delete
= - expression register
_ - black hole register

İşaretler

  • :marks - işaretleri listele
  • ma - A işareti için konum belirle
  • `a - A işaretinin konumuna atla
  • y`a - A işaretinin konumundaki yazıyı kopyala
  • `0 - go to the position where Vim was previously exited
  • `" - go to the position when last editing this file
  • `. - go to the position of the last change in this file
  • `` - go to the position before the last jump
  • :ju[mps] - list of jumps
  • Ctrl + i - go to newer position in jump list
  • Ctrl + o - go to older position in jump list
  • :changes - list of changes
  • g, - go to newer position in change list
  • g; - go to older position in change list
  • Ctrl + ] - jump to the tag under cursor
Tip To jump to a mark you can either use a backtick (`) or an apostrophe ('). Using an apostrophe jumps to the beginning (first non-blank) of the line holding the mark.

Macros

  • qa - bir makro kaydet
  • q - makro kaydetmeyi durdur
  • @a - bir makro çalıştır
  • @@ - son çalıştırılan makroyu yeniden çalıştır

Kes ve yapıştır

  • yy - tek satır kopyalar
  • 2yy - 2 satır kopyalar
  • yw - kelime kopyalar
  • yiw - yank (copy) word under the cursor
  • yaw - yank (copy) word under the cursor and the space after or before it
  • y$ or Y - satır sonuna kadar kopyalar
  • p - imleç sonrasına yapıştırır
  • P - imleç öncesine yapıştırır
  • gp - put (paste) the clipboard after cursor and leave cursor after the new text
  • gP - put (paste) before cursor and leave cursor after the new text
  • dd - satırı (keser) siler
  • 2dd - 2 satırı (keser) siler
  • dw - kelime (keser) siler
  • diw - delete (cut) word under the cursor
  • daw - delete (cut) word under the cursor and the space after or before it
  • :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 - satır sonuna kadar (keser) siler
  • x - karakter (keser) siler

Indent text

  • >> - indent (move right) line one shiftwidth
  • << - de-indent (move left) line one shiftwidth
  • >% - indent a block with () or {} (cursor on brace)
  • <% - de-indent a block with () or {} (cursor on brace)
  • >ib - indent inner block with ()
  • >at - indent a block with <> tags
  • 3== - re-indent 3 lines
  • =% - re-indent a block with () or {} (cursor on brace)
  • =iB - re-indent inner block with {}
  • gg=G - re-indent entire buffer
  • ]p - paste and adjust indent to current line

Çıkış

  • :w - dosyayı kaydet, ama kapatma
  • :w !sudo tee % - dosyayı sudo kullanarak kaydet
  • :wq or :x or ZZ - dosyayı kaydet ve kapat
  • :q - (kaydedilmemiş değişiklikler varsa hata ver) kapat
  • :q! or ZQ - kaydedilmemiş değişiklikleri at ve kapat
  • :wqa - write (save) and quit on all tabs

Ara ve değiştir

  • /pattern - kalıbı ara
  • ?pattern - geriye doğru kalıbı ara
  • \vpattern - 'çok sihirli' kalıp: alfanumerik olmayan karakterleri düzenli ifade (regex) sembolleri olarak yorumlar (kaçış karakteri gerekmez)
  • n - aynı yönde aramaya devam et
  • N - ters yönde aramaya devam et
  • :%s/old/new/g - dosya boyunca tüm eskileri yenileriyle değiştirir
  • :%s/old/new/gc - dosya boyunca tüm eskileri yenileriyle onaylayarak değiştirir
  • :noh[lsearch] - eşleşen sonuçların vurgusunu kaldır

Birden fazla dosyada ara

  • :vim[grep] /pattern/ {`{file}`} - kalıbı birden fazla dosyada ara
e.g. :vim[grep] /foo/ **/*
  • :cn[ext] - sonraki eşleşmeye atla
  • :cp[revious] - önceki eşleşmeye atla
  • :cope[n] - eşleşmeleri bir pencerede göster
  • :ccl[ose] - close the quickfix window

Sekmeler

  • :tabnew or :tabnew {page.words.file} - yeni sekmede dosya aç
  • Ctrl + wT - kendi sekmeleri içerisinde şu anki bölünmüş pencereye geçer
  • gt or :tabn[ext] - bir sonraki sekmeye geçer
  • gT or :tabp[revious] - bir önceki sekmeye geçer
  • #gt - #. sekmeye geçer
  • :tabm[ove] # - şu anki sekmeyi #. pozisyona taşır (sıralama 0'dan başlar)
  • :tabc[lose] - şu anki sekmeyi ve tüm pencereleri kapat
  • :tabo[nly] - şu anki sekme dışında hepsini kapat
  • :tabdo command - tüm sekmelerde komut çalıştır (örn. :tabdo q - açık tüm sekmeleri kapatır)

Birden çok dosya ile çalışma

  • :e[dit] file - yeni tamponda dosyayı düzenle
  • :bn[ext] - bir sonraki tampona geçer
  • :bp[revious] - bir önceki tampona geçer
  • :bd[elete] - tamponu siler ve dosyayı kapatır
  • :b[uffer]# - go to a buffer by #
  • :b[uffer] file - go to a buffer by file
  • :ls or :buffers - tüm açık tamponları listeler
  • :sp[lit] file - yeni tamponda dosya açar ve pencereyi böler
  • :vs[plit] file - yeni tamponda dosya açar ve dikey olarak pencereyi böler
  • :vert[ical] ba[ll] - edit all buffers as vertical windows
  • :tab ba[ll] - edit all buffers as tabs
  • Ctrl + ws - pencereyi böler
  • Ctrl + wv - pencereyi dikey böler
  • Ctrl + ww - pencereyi değiştirir
  • Ctrl + wq - pencereyi kapatır
  • Ctrl + wx - exchange current window with next one
  • Ctrl + w= - make all windows equal height & width
  • Ctrl + wh - imleci sol pencereye taşır (dikey bölme)
  • Ctrl + wl - imleci sağ pencereye taşır (dikey bölme)
  • Ctrl + wj - imleci aşağı pencereye taşır (yatay bölme)
  • Ctrl + wk - imleci yukarı pencereye taşır (yatay bölme)
  • Ctrl + wH - make current window full height at far left (leftmost vertical window)
  • Ctrl + wL - make current window full height at far right (rightmost vertical window)
  • Ctrl + wJ - make current window full width at the very bottom (bottommost horizontal window)
  • Ctrl + wK - make current window full width at the very top (topmost horizontal window)

Diff

  • zf - manually define a fold up to motion
  • zd - delete fold under the cursor
  • za - toggle fold under the cursor
  • zo - open fold under the cursor
  • zc - close fold under the cursor
  • zr - reduce (open) all folds by one level
  • zm - fold more (close) all folds by one level
  • zi - toggle folding functionality
  • ]c - jump to start of next change
  • [c - jump to start of previous change
  • do or :diffg[et] - obtain (get) difference (from other buffer)
  • dp or :diffpu[t] - put difference (to other buffer)
  • :diffthis - make current window part of diff
  • :dif[fupdate] - update differences
  • :diffo[ff] - switch off diff mode for current window
Tip The commands for folding (e.g. za) operate on one level. To operate on all levels, use uppercase letters (e.g. zA).
Tip To view the differences of files, one can directly start Vim in diff mode by running vimdiff in a terminal. One can even set this as git difftool.