VimCheatsheet Pintasan Keyboard

Vim adalah editor teks yang sangat dapat dikonfigurasi yang dibuat untuk membuat dan mengubah segala jenis teks menjadi sangat efisien. Ini disertakan sebagai "vi" dengan sebagian besar sistem UNIX dan dengan Apple OS X.

Panduan visual untuk 228 pintasan keyboard yang ditemukan di Vim

Global

:ter[minal]buka jendela terminal
Ctrlbpindahkan layar ke atas satu halaman (kursor ke baris terakhir)
Hpindah ke atas layar
gkmemindahkan kursor ke atas (teks multi-baris)
Ctrlugerakkan kursor dan layar ke atas 1/2 halaman
Ctrlememindahkan layar ke bawah satu baris (tanpa menggerakkan kursor)
bmelompat mundur ke awal kata
:sav[eas] filesimpan file sebagai
Otambahkan (buka) baris baru di atas baris saat ini
$melompat ke akhir baris
gEmelompat mundur ke akhir kata (kata dapat mengandung tanda baca)
gdpindah ke deklarasi lokal
fxlompat ke kemunculan karakter x berikutnya
Ctrljtambahkan jeda baris pada posisi kursor selama mode penyisipan
5gg5Gpergi ke baris 5
Kbuka halaman manual untuk kata di bawah kursor
,ulangi gerakan f, t, F atau T sebelumnya, mundur
ggpergi ke baris pertama dokumen
Ctrlpmasukkan (lengkapi otomatis) kecocokan sebelumnya sebelum kursor selama mode penyisipan
Ctrldgerakkan kursor dan layar ke bawah 1/2 halaman
Wmelompat maju ke awal kata (kata dapat mengandung tanda baca)
jgerakkan kursor ke bawah
{lompat ke paragraf sebelumnya (atau fungsi/blok, saat mengedit kode)
amenyisipkan (menambahkan) setelah kursor
eamenyisipkan (menambahkan) di akhir kata
kgerakkan kursor ke atas
lgerakkan kursor ke kanan
EscCtrlckeluar dari mode penyisipan
txlompat ke sebelum kemunculan karakter x berikutnya
Ctrlwhapus kata sebelum kursor selama mode penyisipan
;ulangi gerakan f, t, F atau T sebelumnya
Gpergi ke baris terakhir dokumen
zbposisikan kursor di bagian bawah layar
Fxmelompat ke kemunculan karakter x sebelumnya
Ctrlfpindahkan layar ke bawah satu halaman (kursor ke baris pertama)
Amasukkan (tambahkan) di akhir baris
gemelompat mundur ke akhir kata
ztposisikan kursor di atas layar
wmelompat ke depan ke awal kata
emelompat maju ke akhir kata
gDberalih ke deklarasi global
Ctrlhhapus karakter sebelum kursor selama mode penyisipan
g_lompat ke karakter terakhir yang tidak kosong pada baris tersebut
Ctrlrxmasukkan isi register x
Ctrlnmasukkan (lengkapi otomatis) kecocokan berikutnya sebelum kursor selama mode penyisipan
^lompat ke karakter pertama yang tidak kosong pada baris tersebut
Lpindah ke bagian bawah layar
Mpindah ke tengah layar
:clo[se]tutup panel saat ini
:h[elp] keywordbuka bantuan untuk kata kunci
0melompat ke awal baris
%pindahkan kursor ke karakter yang cocok (pasangan default yang didukung: "()", "{}", "[]"
otambahkan (buka) baris baru di bawah baris saat ini
zzkursor tengah di layar
Bmelompat mundur ke awal kata (kata dapat mengandung tanda baca)
imasukkan sebelum kursor
Txlompat ke setelah kemunculan karakter x sebelumnya
}lompat ke paragraf berikutnya (atau fungsi/blok, saat mengedit kode)
Ctrltindentasi (pindah ke kanan) baris satu shiftwidth selama mode penyisipan
Ctrldhapus indentasi (pindah ke kiri) baris satu shiftwidth selama mode penyisipan
hgerakkan kursor ke kiri
gjmemindahkan kursor ke bawah (teks multi-baris)
Emelompat maju ke akhir kata (kata dapat mengandung tanda baca)
Imasukkan di awal baris
CtrloxMasuk ke mode normal untuk sementara untuk mengeluarkan satu perintah mode normal x.
Ctrlymemindahkan layar ke atas satu baris (tanpa menggerakkan kursor)

Makro

>ibindentasi blok dalam dengan ()
@amenjalankan makro a
:tabdojalankan perintah di semua tab (misal :tabdo q
:q!ZQberhenti dan membuang perubahan yang belum disimpan
:wtulis (simpan) file tersebut, tetapi jangan keluar
pletakkan (tempel) clipboard setelah kursor
yawmencabut (menyalin) kata di bawah kursor dan spasi setelah atau sebelumnya
>%membuat indentasi blok dengan () atau {} (kursor pada kurung kurawal)
]ptempel dan sesuaikan indentasi ke baris saat ini
ywmencabut (menyalin) karakter kata dari posisi kursor ke awal kata berikutnya
yymenarik (menyalin) satu baris
y$Ytarik (salin) ke akhir baris
:cope[n]buka jendela yang berisi daftar kecocokan
:qberhenti (gagal jika ada perubahan yang belum disimpan)
CtrlwTpindahkan jendela terpisah saat ini ke tabnya sendiri
:g!/{pattern}/dhapus semua baris yang tidak mengandung pola
:noh[lsearch]hapus penyorotan kecocokan pencarian
>>indent (pindah ke kanan) baris satu shiftwidth
=%indentasi ulang blok dengan () atau {} (kursor pada kurung kurawal)
qamerekam makro a
xhapus (potong) karakter
:ccl[ose]tutup jendela perbaikan cepat
dwmenghapus (memotong) karakter kata dari posisi kursor hingga awal kata berikutnya
Nulangi pencarian ke arah yang berlawanan
:%s/old/new/gc:%s/lama/baru/gc - ganti semua yang lama dengan yang baru di seluruh file dengan konfirmasi
:cp[revious]melompat ke pertandingan sebelumnya
:vim[grep] /pattern/ {`{file}`}:vim[grep] /pattern/ {`{file}`} - mencari pola di banyak file
/patternmencari pola
>atmembuat indentasi blok dengan tag <>
gPletakkan (tempel) sebelum kursor dan tinggalkan kursor setelah teks baru
Pletakkan (tempel) sebelum kursor
d$Dhapus (potong) sampai akhir baris
:tabo[nly]tutup semua tab kecuali yang sekarang
dawmenghapus (memotong) kata di bawah kursor dan spasi setelah atau sebelumnya
diwmenghapus (memotong) kata di bawah kursor
qberhenti merekam makro
:%s/old/new/g:%s/lama/baru/g - ganti semua yang lama dengan yang baru di seluruh file
:tabnew:tabnew {page.words.file}:tabnew atau :tabnew {page.words.file} - membuka file di tab baru
3==indentasi ulang 3 baris
<<de-indent (pindah ke kiri) baris satu shiftwidth
:tabc[lose]tutup tab saat ini dan semua jendelanya
2ddhapus (potong) 2 baris
:cn[ext]melompat ke pertandingan berikutnya
ddmenghapus (memotong) satu baris
gpletakkan (tempel) clipboard setelah kursor dan biarkan kursor setelah teks baru
gt:tabn[ext]pindah ke tab berikutnya
yiwmencabut (menyalin) kata di bawah kursor
gg=Gindentasi ulang seluruh buffer
gT:tabp[revious]pindah ke tab sebelumnya
=iBindentasi ulang blok dalam dengan {}
\vpatternPola "sangat ajaib": karakter non-alfanumerik ditafsirkan sebagai simbol regex khusus (tidak perlu pelolosan)
:tabm[ove] #pindahkan tab saat ini ke posisi ke-# (diindeks dari 0)
:g/{pattern}/dhapus semua baris yang mengandung pola
?patternmencari pola ke belakang
#gtpindah ke nomor tab #
:w !sudo tee %tulis file saat ini menggunakan sudo
<%hapus indentasi blok dengan () atau {} (kursor pada kurung kurawal)
:wq:xZZtulis (simpan) dan keluar
:wqatulis (simpan) dan keluar di semua tab
nulangi pencarian ke arah yang sama
2yytarik (salin) 2 baris
:3,5dhapus baris mulai dari 3 hingga 5
@@jalankan kembali makro yang terakhir dijalankan

Mengedit

Ctrlvmemulai mode blok visual
"+ptempel dari register clipboard sistem
<menggeser teks ke kiri
Ctrlrmengulangi
y`atarik teks ke posisi tanda A
Upulihkan (batalkan) baris yang terakhir diubah
opindah ke ujung lain dari area yang ditandai
`0pergi ke posisi di mana Vim sebelumnya keluar
Ctrl]lompat ke tag di bawah kursor
~beralih kasus
maatur posisi saat ini untuk tanda A
:changesdaftar perubahan
"+ytarik ke dalam register clipboard sistem
.ulangi perintah terakhir
aBsatu blok dengan {}
Jgabungkan baris di bawah ini dengan baris saat ini dengan satu spasi di antaranya
>menggeser teks ke kanan
cwceubah (ganti) pada akhir kata
shapus karakter dan ganti teks (sama seperti cl)
guubah menjadi huruf kecil hingga gerak
:reg[isters]tampilkan konten register
:marksdaftar tanda
"xprekatkan isi register x
Ctrlopergi ke posisi yang lebih tua dalam daftar lompat
umembuka
g;pergi ke posisi yang lebih lama dalam daftar perubahan
gJgabungkan baris di bawah ini ke baris saat ini tanpa spasi di antaranya
gUubah menjadi huruf besar hingga gerak
`.pergi ke posisi perubahan terakhir pada file ini
atsebuah blok dengan tag <>
c$Cubah (ganti) sampai akhir baris
Shapus baris dan ganti teks (sama seperti cc)
``pergi ke posisi sebelum lompatan terakhir
Vmemulai mode visual searah
dhapus teks yang ditandai
ciwmengubah (mengganti) seluruh kata
itblok dalam dengan tag <>
awmenandai sebuah kata
g~alihkan case ke gerakan
ibblok dalam dengan ()
uubah teks yang ditandai menjadi huruf kecil
gwipparagraf alur ulang
g,pergi ke posisi yang lebih baru dalam daftar perubahan
`alompat ke posisi tanda A
Uubah teks yang ditandai menjadi huruf besar
xpmengubah urutan dua huruf (hapus dan tempel)
RESCganti lebih dari satu karakter, hingga ESC ditekan.
ymenarik (menyalin) teks yang ditandai
:ju[mps]daftar lompatan
`"pergi ke posisi terakhir mengedit file ini
Opindah ke sudut blok yang lain
"xytarik ke register x
vmulai mode visual, tandai garis, lalu lakukan perintah (seperti y-yank)
absatu blok dengan ()
iBblok dalam dengan {}
ccubah (ganti) seluruh baris
rmengganti satu karakter.
Ctrlipergi ke posisi yang lebih baru di daftar lompat
EscCtrlckeluar dari mode visual

Beda

:diffo[ff]matikan mode diff untuk jendela saat ini
zfsecara manual menentukan lipatan hingga gerakan
:diffthisjadikan jendela saat ini bagian dari diff
[clompat ke awal perubahan sebelumnya
do:diffg[et]dapatkan (dapatkan) perbedaan (dari buffer lain)
zmlipat lebih banyak (menutup) semua lipatan satu tingkat
zaberalih lipat di bawah kursor
zctutup lipatan di bawah kursor
ziberalih fungsi lipat
:dif[fupdate]memperbarui perbedaan
dp:diffpu[t]masukkan perbedaan (ke buffer lain)
zrkurangi (buka) semua lipatan sebanyak satu tingkat
]cmelompat untuk memulai perubahan berikutnya
zobuka lipatan di bawah kursor
zdhapus lipatan di bawah kursor

Bekerja dengan banyak file

:b[uffer]#pergi ke buffer berdasarkan indeks #
:b[uffer] filepergi ke buffer demi file
:bp[revious]:bp[revious] - pergi ke buffer sebelumnya
Ctrlwlmemindahkan kursor ke jendela kanan (terpisah vertikal)
:vert[ical] ba[ll]edit semua buffer sebagai jendela vertikal
Ctrlwwberalih jendela
Ctrlwqkeluar dari jendela
Ctrlwkpindahkan kursor ke jendela di atas (pemisahan horizontal)
Ctrlwvmembagi jendela secara vertikal
:ls:buffersdaftar semua buffer terbuka
:bn[ext]:bn[ext] - pergi ke buffer berikutnya
CtrlwLbuat jendela saat ini setinggi penuh di paling kanan (jendela vertikal paling kanan)
:sp[lit] filebuka file di buffer baru dan pisahkan jendela
CtrlwHbuat jendela saat ini setinggi penuh di paling kiri (jendela vertikal paling kiri)
CtrlwJbuat jendela saat ini lebar penuh di bagian paling bawah (jendela horizontal paling bawah)
Ctrlwsjendela terbelah
:vs[plit] filebuka file di buffer baru dan pisahkan jendela secara vertikal
Ctrlw=buat semua jendela sama tinggi & lebarnya
:e[dit] fileedit file di buffer baru
Ctrlwjpindahkan kursor ke jendela di bawah (terpisah horizontal)
Ctrlwhmemindahkan kursor ke jendela kiri (terbelah vertikal)
Ctrlwxtukar jendela saat ini dengan jendela berikutnya
:tab ba[ll]edit semua buffer sebagai tab
CtrlwKbuat jendela saat ini lebar penuh di bagian paling atas (jendela horizontal paling atas)
:bd[elete]menghapus buffer (menutup file)

FAQ