VIM: Modal Editing
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
Modal Editing
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 wordb
- go to beginning of wordw
- go to next word
Bisa juga dikombinasikan dengan angka, seperti:
4w
- go to 4 next words5b
- 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 leftj
- move cursor downk
- move cursor upl
- 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
- pastex
- delete~
- change caseu
- undo
Beberapa perintah modifying commands membutuhkan kombinasi, misal dengan movement command.
de
- delete to the end of the wordd4w
- delete 4 wordsy5j
- yank (copy) 5 lines downward
Saya lebih suka menyebutnya combo commands.
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 wordci'
- 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!