REFERENSI CEPAT VIM
Mode, navigasi, editing, pencarian, macro, buffer
Mode
Pergantian Mode
| i | Mode insert (sebelum kursor) |
| a | Mode insert (setelah kursor) |
| o | Sisipkan baris di bawah dan masuk mode insert |
| O | Sisipkan baris di atas dan masuk mode insert |
| v | Mode visual (karakter) |
| V | Mode visual (baris) |
| Ctrl+v | Mode visual blok |
| : | Mode command-line |
| R | Mode replace |
| Esc | Kembali ke mode normal |
Navigasi
Gerakan Karakter dan Baris
| h j k l | Kiri, bawah, atas, kanan |
| 0 / ^ | Awal baris / karakter non-spasi pertama |
| $ | Akhir baris |
| w / W | Kata berikutnya / KATA berikutnya |
| b / B | Kata sebelumnya / KATA sebelumnya |
| e / E | Akhir kata / KATA |
| f{c} / F{c} | Cari karakter ke depan / belakang |
| t{c} / T{c} | Hingga karakter ke depan / belakang |
Gerakan Layar dan File
| gg / G | Ke baris pertama / terakhir |
| :{n} | Ke baris n |
| Ctrl+d / Ctrl+u | Setengah halaman bawah / atas |
| Ctrl+f / Ctrl+b | Satu halaman penuh bawah / atas |
| H / M / L | Atas / tengah / bawah layar |
| % | Lompat ke tanda kurung yang cocok |
Editing
Insert dan Append
| I | Insert di awal baris |
| A | Tambahkan di akhir baris |
| ea | Tambahkan di akhir kata |
| gi | Insert di posisi insert terakhir |
Hapus dan Ubah
| x / X | Hapus karakter di bawah / sebelum kursor |
| dd | Hapus baris |
| dw | Hapus kata |
| d$ / D | Hapus hingga akhir baris |
| cc / S | Ubah seluruh baris |
| cw | Ubah kata |
| c$ / C | Ubah hingga akhir baris |
| ci" / ci( | Ubah dalam tanda kutip / kurung |
Salin dan Tempel
| yy | Salin baris |
| yw | Salin kata |
| y$ | Salin hingga akhir baris |
| p / P | Tempel setelah / sebelum kursor |
| J | Gabungkan baris di bawah ke baris saat ini |
Undo dan Ulangi
| u | Undo |
| Ctrl+r | Redo |
| . | Ulangi perintah terakhir |
Cari dan Ganti
Pencarian
| /pattern | Cari ke depan |
| ?pattern | Cari ke belakang |
| n / N | Hasil berikutnya / sebelumnya |
| * | Cari kata di bawah kursor (ke depan) |
| # | Cari kata di bawah kursor (ke belakang) |
Substitusi
:s/old/new/ " ganti pertama di baris
:s/old/new/g " ganti semua di baris
:%s/old/new/g " ganti semua di file
:%s/old/new/gc " ganti semua, konfirmasi tiap satu
Mode Visual
Seleksi
| v | Mulai seleksi karakter |
| V | Mulai seleksi baris |
| Ctrl+v | Mulai seleksi blok |
| o | Pindah ke ujung seleksi lainnya |
| gv | Pilih ulang seleksi visual terakhir |
Aksi pada Seleksi
| d | Hapus seleksi |
| y | Salin seleksi |
| c | Ubah seleksi |
| > | Indentasi seleksi |
| < | Kurangi indentasi seleksi |
| ~ | Toggle huruf besar/kecil |
| U / u | Huruf besar / kecil semua seleksi |
Buffer dan Window
Buffer
| :ls | Daftar buffer yang terbuka |
| :bn / :bp | Buffer berikutnya / sebelumnya |
| :b{n} | Ke buffer n |
| :bd | Tutup buffer saat ini |
| :e file | Buka file di buffer baru |
Window
| :sp file | Bagi horizontal |
| :vsp file | Bagi vertikal |
| Ctrl+w h/j/k/l | Navigasi ke window |
| Ctrl+w = | Samakan ukuran window |
| Ctrl+w q | Tutup window |
Tab
| :tabnew file | Buka file di tab baru |
| gt / gT | Tab berikutnya / sebelumnya |
| :tabclose | Tutup tab saat ini |
Register
Menggunakan Register
| "ay | Salin ke register a |
| "ap | Tempel dari register a |
| "Ay | Tambahkan salinan ke register a |
| :reg | Tampilkan semua register |
Register Spesial
| "" | Tanpa nama (hapus/salin terakhir) |
| "0 | Salinan terakhir |
| "+ | Clipboard sistem |
| "/" | Pola pencarian terakhir |
| ". | Teks yang disisipkan terakhir |
| "_ | Lubang hitam (buang) |
Macro
Merekam dan Memutar
| q{a} | Mulai rekam macro ke register a |
| q | Berhenti merekam |
| @{a} | Putar macro dari register a |
| @@ | Putar ulang macro terakhir |
| 5@a | Putar macro a 5 kali |
Contoh Macro
qa " mulai rekam ke a
I// " sisipkan // di awal baris
Esc j " kembali ke normal, turun satu baris
q " berhenti merekam
10@a " komentar 10 baris berikutnya
Pengaturan
Opsi Umum
:set number " tampilkan nomor baris
:set relativenumber " nomor baris relatif
:set tabstop=4 " lebar tab
:set expandtab " spasi alih-alih tab
:set ignorecase " pencarian tidak peka huruf
Tampilan dan Perilaku
:set wrap / nowrap " toggle pembungkusan baris
:set hlsearch " sorot hasil pencarian
:set incsearch " pencarian inkremental
:set cursorline " sorot baris saat ini
:syntax on " aktifkan penyorotan sintaks
Operasi File
Simpan dan Keluar
| :w | Simpan |
| :w file | Simpan sebagai file |
| :q | Keluar (gagal jika belum disimpan) |
| :q! | Keluar tanpa menyimpan |
| :wq / :x / ZZ | Simpan dan keluar |
| :wa | Simpan semua buffer |
| :qa | Keluar dari semua buffer |
Info File dan Eksternal
| Ctrl+g | Tampilkan info file |
| :!cmd | Jalankan perintah shell |
| :r !cmd | Sisipkan output perintah |
| :r file | Sisipkan isi file |
Objek Teks
Objek Inner dan Around
| iw / aw | Dalam / sekitar kata |
| is / as | Dalam / sekitar kalimat |
| ip / ap | Dalam / sekitar paragraf |
| i" / a" | Dalam / sekitar tanda kutip ganda |
| i' / a' | Dalam / sekitar tanda kutip tunggal |
| i( / a( | Dalam / sekitar tanda kurung |
| i{ / a{ | Dalam / sekitar kurung kurawal |
| it / at | Dalam / sekitar tag HTML |
Kombinasi Umum
ciw " ubah kata dalam
di" " hapus dalam tanda kutip
ya{ " salin sekitar kurung kurawal
vip " pilih paragraf dalam
Mark dan Lompatan
Mark
| m{a} | Set mark a di posisi kursor |
| 'a | Lompat ke baris mark a |
| `a | Lompat ke posisi tepat mark a |
| :marks | Tampilkan semua mark |
Daftar Lompatan
| Ctrl+o | Lompat ke posisi sebelumnya |
| Ctrl+i | Lompat ke posisi berikutnya |
| :jumps | Tampilkan daftar lompatan |
| '' | Lompat ke posisi lompatan terakhir |