Ketika pertama kali membuka vim, orang yang tidak terbiasa akan bingung karena ketika tombol keyboard ditekan, bukannya karakter yang tertulis di layar, tetapi malah kursor berpindah entah ke mana, atau malah ada karakter yang terhapus, atau ter-copy. Saking bingungnya, sejuta orang (sampai terakhir data diambil) mencari jalan keluar dari vim.

exit vim

Exit VIM

Editor VIM memiliki beberapa mode dalam penggunaannya. Dari situlah muncul istilah modal editing. Dalam VIM kita mengenal 3 mode utama:

  • Normal mode
  • Insert mode
  • Visual/Selection mode
  • Command mode

Inilah yang biasa membuat orang bingung. Karena mayoritas editor tidak memiliki multi-mode seperti ini. Sehingga ekspektasinya adalah ketika diketik sobuah karakter, maka karakter tersebut akan tertulis di layar. Sedangkan dalam VIM, akan tergantung dari mode yang sedang aktif pada saat itu.

Normal Mode

Dalam normal mode, ketika kita input karakter dengan keyboard, VIM akan menangkapnya sebagai command, bukan sebagai input karakter. Input command di dalam command mode menggunakan mnemonic atau kata yang disingkat, lebih jelas nanti kita lihat pada contoh.

Movement Commands

Di dalam normal mode, kita bisa menggunakan movement command untuk melakukan navigasi di dalam teks yang sedang di edit lebih efisien daripada menggunakan navigasi dengan tombol arah/panah. Contoh:

  • e - go to end of word
  • b - go to beginning of word
  • w - go to next word

Bisa juga dikombinasikan dengan angka, seperti:

  • 4w - go to 4 next words
  • 5b - go to 5 words back

Bagaimana kalau kita ingin menggeser kursor dengan lebih presisi, misal per karakter, seperti halnya ketika kita menggunakan arrow keys di editor pada umumnya?

  • h - move cursor left
  • j - move cursor down
  • k - move cursor up
  • l - move cursor right

Di VIM digunakan hjkl sebagai pengganti tanda panah. Sehingga pergerakan tangan menjadi lebih efisien (tidak perlu meninggalkan home row).

hjkl = wasd of vim

Modifying Commands

Kita dapat melakukan modifikasi teks, seperti hapus, copy, paste, dan sebagainya di dalam normal mode juga. Modifying command ini ada yang stand alone dan ada yang harus menggunakan kombinasi movement.

Stand alone:

  • p - paste
  • x - delete
  • ~ - change case
  • u - undo

Beberapa perintah modifying commands membutuhkan kombinasi, misal dengan movement command.

  • de - delete to the end of the word
  • d4w - delete 4 words
  • y5j - yank (copy) 5 lines downward

Saya lebih suka menyebutnya combo commands.

stickman combo

Block punch kick run, repeat

Insert Mode

Di dalam insert mode inilah kita melakukan editing text. Ketika di dalam mode ini, kebanyakan pengguna akan merasa familiar karena behavior yang hampir sama dengan text editor lainnya, see as you type. Enter, backspace, arrow keys, semua berlaku seperti pada text editor pada umumnya. Insert mode dapat diakses dari normal mode dengan menekan:

  • i - insert (kursor mulai sebelah kiri highlight)
  • a - append (kursor mulai sebelah kanan highlight)

Beberapa command lain, seperti command c[movement] (change sesuai movement), juga secara otomatis juga akan masuk ke dalam insert mode.

  • ce - change to the end of the word
  • ci' - change inside '

Visual Mode

Visual mode adalah mode untuk melakukan selection pada text, misal untuk copy/cut/delete. Visual mode dapat diakses dari normal mode dengan menekan:

  • v - masuk ke visual mode standar, selection dilakukan per karakter
  • [Shift+v] - masuk ke line visual mode, selection akan dilakukan per line
  • [Ctrl+v] - masuk ke block visual mode, selection akan dilakukan dengan cara block, seperti [Alt+click+drag] di editor lain

Command Mode

VIM memiliki perintah tertulis (command line) untuk mengakses fitur-fitur di dalamnya. Command mode dapat diakses dari normal mode dengan menekan :.

  • :q - quit active window
  • :w - write to file

Perintah yang diketik dalam command mode juga dapat dikombinasikan.

  • :qa - quit all windows
  • :wq - write then quit
  • :wqa - write then quit all windows

Lebih Lanjut

Bingung? Atau merasakan awal yang berat dalam mempelajari VIM? Instalasi VIM secara otomatis sudah memasukkan aplikasi vimtutor yang di dalamnya sudah terdapat berbagai tutorial VIM yang mudah dan menyenangkan. Cukup ketikkan vimtutor di terminal (Linux & OSX). Untuk pengguna Windows dapat mencari tahu lebih lanjut di versi windows dari VIM.

Semoga bermanfaat. Happy hacking!