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 |
Ctrl b | pindahkan layar ke atas satu halaman (kursor ke baris terakhir) |
H | pindah ke atas layar |
gk | memindahkan kursor ke atas (teks multi-baris) |
Ctrl u | gerakkan kursor dan layar ke atas 1/2 halaman |
Ctrl e | memindahkan layar ke bawah satu baris (tanpa menggerakkan kursor) |
b | melompat mundur ke awal kata |
:sav[eas] file | simpan file sebagai |
O | tambahkan (buka) baris baru di atas baris saat ini |
$ | melompat ke akhir baris |
gE | melompat mundur ke akhir kata (kata dapat mengandung tanda baca) |
gd | pindah ke deklarasi lokal |
fx | lompat ke kemunculan karakter x berikutnya |
Ctrl j | tambahkan jeda baris pada posisi kursor selama mode penyisipan |
5gg 5G | pergi ke baris 5 |
K | buka halaman manual untuk kata di bawah kursor |
, | ulangi gerakan f, t, F atau T sebelumnya, mundur |
gg | pergi ke baris pertama dokumen |
Ctrl p | masukkan (lengkapi otomatis) kecocokan sebelumnya sebelum kursor selama mode penyisipan |
Ctrl d | gerakkan kursor dan layar ke bawah 1/2 halaman |
W | melompat maju ke awal kata (kata dapat mengandung tanda baca) |
j | gerakkan kursor ke bawah |
{ | lompat ke paragraf sebelumnya (atau fungsi/blok, saat mengedit kode) |
a | menyisipkan (menambahkan) setelah kursor |
ea | menyisipkan (menambahkan) di akhir kata |
k | gerakkan kursor ke atas |
l | gerakkan kursor ke kanan |
Esc Ctrl c | keluar dari mode penyisipan |
tx | lompat ke sebelum kemunculan karakter x berikutnya |
Ctrl w | hapus kata sebelum kursor selama mode penyisipan |
; | ulangi gerakan f, t, F atau T sebelumnya |
G | pergi ke baris terakhir dokumen |
zb | posisikan kursor di bagian bawah layar |
Fx | melompat ke kemunculan karakter x sebelumnya |
Ctrl f | pindahkan layar ke bawah satu halaman (kursor ke baris pertama) |
A | masukkan (tambahkan) di akhir baris |
ge | melompat mundur ke akhir kata |
zt | posisikan kursor di atas layar |
w | melompat ke depan ke awal kata |
e | melompat maju ke akhir kata |
gD | beralih ke deklarasi global |
Ctrl h | hapus karakter sebelum kursor selama mode penyisipan |
g_ | lompat ke karakter terakhir yang tidak kosong pada baris tersebut |
Ctrl rx | masukkan isi register x |
Ctrl n | masukkan (lengkapi otomatis) kecocokan berikutnya sebelum kursor selama mode penyisipan |
^ | lompat ke karakter pertama yang tidak kosong pada baris tersebut |
L | pindah ke bagian bawah layar |
M | pindah ke tengah layar |
:clo[se] | tutup panel saat ini |
:h[elp] keyword | buka bantuan untuk kata kunci |
0 | melompat ke awal baris |
% | pindahkan kursor ke karakter yang cocok (pasangan default yang didukung: "()", "{}", "[]" |
o | tambahkan (buka) baris baru di bawah baris saat ini |
zz | kursor tengah di layar |
B | melompat mundur ke awal kata (kata dapat mengandung tanda baca) |
i | masukkan sebelum kursor |
Tx | lompat ke setelah kemunculan karakter x sebelumnya |
} | lompat ke paragraf berikutnya (atau fungsi/blok, saat mengedit kode) |
Ctrl t | indentasi (pindah ke kanan) baris satu shiftwidth selama mode penyisipan |
Ctrl d | hapus indentasi (pindah ke kiri) baris satu shiftwidth selama mode penyisipan |
h | gerakkan kursor ke kiri |
gj | memindahkan kursor ke bawah (teks multi-baris) |
E | melompat maju ke akhir kata (kata dapat mengandung tanda baca) |
I | masukkan di awal baris |
Ctrl ox | Masuk ke mode normal untuk sementara untuk mengeluarkan satu perintah mode normal x. |
Ctrl y | memindahkan layar ke atas satu baris (tanpa menggerakkan kursor) |
Makro
>ib | indentasi blok dalam dengan () |
@a | menjalankan makro a |
:tabdo | jalankan perintah di semua tab (misal :tabdo q |
:q! ZQ | berhenti dan membuang perubahan yang belum disimpan |
:w | tulis (simpan) file tersebut, tetapi jangan keluar |
p | letakkan (tempel) clipboard setelah kursor |
yaw | mencabut (menyalin) kata di bawah kursor dan spasi setelah atau sebelumnya |
>% | membuat indentasi blok dengan () atau {} (kursor pada kurung kurawal) |
]p | tempel dan sesuaikan indentasi ke baris saat ini |
yw | mencabut (menyalin) karakter kata dari posisi kursor ke awal kata berikutnya |
yy | menarik (menyalin) satu baris |
y$ Y | tarik (salin) ke akhir baris |
:cope[n] | buka jendela yang berisi daftar kecocokan |
:q | berhenti (gagal jika ada perubahan yang belum disimpan) |
Ctrl wT | pindahkan jendela terpisah saat ini ke tabnya sendiri |
:g!/{pattern}/d | hapus 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) |
qa | merekam makro a |
x | hapus (potong) karakter |
:ccl[ose] | tutup jendela perbaikan cepat |
dw | menghapus (memotong) karakter kata dari posisi kursor hingga awal kata berikutnya |
N | ulangi 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 |
/pattern | mencari pola |
>at | membuat indentasi blok dengan tag <> |
gP | letakkan (tempel) sebelum kursor dan tinggalkan kursor setelah teks baru |
P | letakkan (tempel) sebelum kursor |
d$ D | hapus (potong) sampai akhir baris |
:tabo[nly] | tutup semua tab kecuali yang sekarang |
daw | menghapus (memotong) kata di bawah kursor dan spasi setelah atau sebelumnya |
diw | menghapus (memotong) kata di bawah kursor |
q | berhenti 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 |
2dd | hapus (potong) 2 baris |
:cn[ext] | melompat ke pertandingan berikutnya |
dd | menghapus (memotong) satu baris |
gp | letakkan (tempel) clipboard setelah kursor dan biarkan kursor setelah teks baru |
gt :tabn[ext] | pindah ke tab berikutnya |
yiw | mencabut (menyalin) kata di bawah kursor |
gg=G | indentasi ulang seluruh buffer |
gT :tabp[revious] | pindah ke tab sebelumnya |
=iB | indentasi ulang blok dalam dengan {} |
\vpattern | Pola "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}/d | hapus semua baris yang mengandung pola |
?pattern | mencari pola ke belakang |
#gt | pindah ke nomor tab # |
:w !sudo tee % | tulis file saat ini menggunakan sudo |
<% | hapus indentasi blok dengan () atau {} (kursor pada kurung kurawal) |
:wq :x ZZ | tulis (simpan) dan keluar |
:wqa | tulis (simpan) dan keluar di semua tab |
n | ulangi pencarian ke arah yang sama |
2yy | tarik (salin) 2 baris |
:3,5d | hapus baris mulai dari 3 hingga 5 |
@@ | jalankan kembali makro yang terakhir dijalankan |
Mengedit
Ctrl v | memulai mode blok visual |
"+p | tempel dari register clipboard sistem |
< | menggeser teks ke kiri |
Ctrl r | mengulangi |
y`a | tarik teks ke posisi tanda A |
U | pulihkan (batalkan) baris yang terakhir diubah |
o | pindah ke ujung lain dari area yang ditandai |
`0 | pergi ke posisi di mana Vim sebelumnya keluar |
Ctrl ] | lompat ke tag di bawah kursor |
~ | beralih kasus |
ma | atur posisi saat ini untuk tanda A |
:changes | daftar perubahan |
"+y | tarik ke dalam register clipboard sistem |
. | ulangi perintah terakhir |
aB | satu blok dengan {} |
J | gabungkan baris di bawah ini dengan baris saat ini dengan satu spasi di antaranya |
> | menggeser teks ke kanan |
cw ce | ubah (ganti) pada akhir kata |
s | hapus karakter dan ganti teks (sama seperti cl) |
gu | ubah menjadi huruf kecil hingga gerak |
:reg[isters] | tampilkan konten register |
:marks | daftar tanda |
"xp | rekatkan isi register x |
Ctrl o | pergi ke posisi yang lebih tua dalam daftar lompat |
u | membuka |
g; | pergi ke posisi yang lebih lama dalam daftar perubahan |
gJ | gabungkan baris di bawah ini ke baris saat ini tanpa spasi di antaranya |
gU | ubah menjadi huruf besar hingga gerak |
`. | pergi ke posisi perubahan terakhir pada file ini |
at | sebuah blok dengan tag <> |
c$ C | ubah (ganti) sampai akhir baris |
S | hapus baris dan ganti teks (sama seperti cc) |
`` | pergi ke posisi sebelum lompatan terakhir |
V | memulai mode visual searah |
d | hapus teks yang ditandai |
ciw | mengubah (mengganti) seluruh kata |
it | blok dalam dengan tag <> |
aw | menandai sebuah kata |
g~ | alihkan case ke gerakan |
ib | blok dalam dengan () |
u | ubah teks yang ditandai menjadi huruf kecil |
gwip | paragraf alur ulang |
g, | pergi ke posisi yang lebih baru dalam daftar perubahan |
`a | lompat ke posisi tanda A |
U | ubah teks yang ditandai menjadi huruf besar |
xp | mengubah urutan dua huruf (hapus dan tempel) |
R ESC | ganti lebih dari satu karakter, hingga ESC ditekan. |
y | menarik (menyalin) teks yang ditandai |
:ju[mps] | daftar lompatan |
`" | pergi ke posisi terakhir mengedit file ini |
O | pindah ke sudut blok yang lain |
"xy | tarik ke register x |
v | mulai mode visual, tandai garis, lalu lakukan perintah (seperti y-yank) |
ab | satu blok dengan () |
iB | blok dalam dengan {} |
cc | ubah (ganti) seluruh baris |
r | mengganti satu karakter. |
Ctrl i | pergi ke posisi yang lebih baru di daftar lompat |
Esc Ctrl c | keluar dari mode visual |
Beda
:diffo[ff] | matikan mode diff untuk jendela saat ini |
zf | secara manual menentukan lipatan hingga gerakan |
:diffthis | jadikan jendela saat ini bagian dari diff |
[c | lompat ke awal perubahan sebelumnya |
do :diffg[et] | dapatkan (dapatkan) perbedaan (dari buffer lain) |
zm | lipat lebih banyak (menutup) semua lipatan satu tingkat |
za | beralih lipat di bawah kursor |
zc | tutup lipatan di bawah kursor |
zi | beralih fungsi lipat |
:dif[fupdate] | memperbarui perbedaan |
dp :diffpu[t] | masukkan perbedaan (ke buffer lain) |
zr | kurangi (buka) semua lipatan sebanyak satu tingkat |
]c | melompat untuk memulai perubahan berikutnya |
zo | buka lipatan di bawah kursor |
zd | hapus lipatan di bawah kursor |
Bekerja dengan banyak file
:b[uffer]# | pergi ke buffer berdasarkan indeks # |
:b[uffer] file | pergi ke buffer demi file |
:bp[revious] | :bp[revious] - pergi ke buffer sebelumnya |
Ctrl wl | memindahkan kursor ke jendela kanan (terpisah vertikal) |
:vert[ical] ba[ll] | edit semua buffer sebagai jendela vertikal |
Ctrl ww | beralih jendela |
Ctrl wq | keluar dari jendela |
Ctrl wk | pindahkan kursor ke jendela di atas (pemisahan horizontal) |
Ctrl wv | membagi jendela secara vertikal |
:ls :buffers | daftar semua buffer terbuka |
:bn[ext] | :bn[ext] - pergi ke buffer berikutnya |
Ctrl wL | buat jendela saat ini setinggi penuh di paling kanan (jendela vertikal paling kanan) |
:sp[lit] file | buka file di buffer baru dan pisahkan jendela |
Ctrl wH | buat jendela saat ini setinggi penuh di paling kiri (jendela vertikal paling kiri) |
Ctrl wJ | buat jendela saat ini lebar penuh di bagian paling bawah (jendela horizontal paling bawah) |
Ctrl ws | jendela terbelah |
:vs[plit] file | buka file di buffer baru dan pisahkan jendela secara vertikal |
Ctrl w= | buat semua jendela sama tinggi & lebarnya |
:e[dit] file | edit file di buffer baru |
Ctrl wj | pindahkan kursor ke jendela di bawah (terpisah horizontal) |
Ctrl wh | memindahkan kursor ke jendela kiri (terbelah vertikal) |
Ctrl wx | tukar jendela saat ini dengan jendela berikutnya |
:tab ba[ll] | edit semua buffer sebagai tab |
Ctrl wK | buat jendela saat ini lebar penuh di bagian paling atas (jendela horizontal paling atas) |
:bd[elete] | menghapus buffer (menutup file) |