Mode

Vi memiliki dua mode yaitu mode command, dan mode insertion. Ketika kita membuka vi, maka pertama kali akan masuk ke mode command, dimana kursor dapat kita gerak-gerakkan atau bahkan melakukan penghapusan terhadap teks. Mode insertion dimulai ketika memasuki salah satu perintah insertion atau perintah change, yaitu perintah untuk mengedit teks dengan menuliskan huruf demi huruf. Dengan menekan tombol Escape (ESC), maka kita dapat kembali lagi ke mode command. Pada mode command, kebanyakan eksekusi terhadap perintah langsung dilakukan seketika itu juga, kecuali pada perintah yang menggunakan titik dua (colon) harus diakhiri dengan penekanan tombol enter.

Berikut ini perintah-perintah vi yang umum digunakan, dikelompokkan berdasarkan fungsonalitasnya.

Keluar dari Vi:

Untuk keluar dari VI ada berbagai macam cara yang berbeda-beda sesuai dengan fungsi dan kebutuhannya, yaitu:
 :wq Keluar dan simpan perubahan yang telah dilakukan, ini ekivalen dengan perintah :wq
:q Keluar, selama tidak melakukan perubahan terhadap file
ZZ Keluar, dan menyimpan perubahan ketika terjadi perubahan
:q! Keluar dengan mengabaikan semua perubahan yang telah diakukan terhadap file

Menggerakkan Kursor:

Menggerakkan kursor ke kiri
Menggerakkan kursor ke bawah
Menggerakkan kursor ke atas
l Menggerakkan kursor ke kanan
Menggerakkan kursor ke kata berikutnya
W Menggerakkan kursor ke pembatas kosong kata berikutnya
b Menggerakkan kursor ke ke awal kata
Menggerakkan kursor ke ke awal pembatas kosong kata
Menggerakkan kursor ke akhir kata
E Menggerakkan kursor ke akhir pembatas kosong kata
( Menggerakkan kursor ke kalimat sebelumnya
Menggerakkan kursor ke kalimat berikutnya
Menggerakkan kursor keke paragraf sebelumnya
} Menggerakkan kursor ke paragraf berikutnya
0 Menggerakkan kursor ke awal baris
$ Menggerakkan kursor ke akhir baris
1G Menggerakkan kursor ke baris pertama dari isi file
G Menggerakkan kursor ke baris terakhir dari isi file
nG Menggerakkan kursor ke baris ke-n dari isi file
:n Menggerakkan kursor ke baris ke-n dari isi file
fc Menggerakkan kursor ke huruf c terdekat selanjutnya (huruf c dapat diganti oleh huruf apa saja yang pengin dicari)
Fc Menggerakkan kursor ke huruf c terdekat berikutnya (huruf c dapat diganti oleh huruf apa saja yang pengin dicari)
Menggerakkan kursor ke atas tampilan layar
Menggerakkan kursor ke tengah tampilan layar
Menggerakkan kursor ke bawah tampilan layar

Menghapus Teks:

Hapus sebuah karakter pada posisi kursor
X Hapus sebuah karakter di sebelah kiri kursor
D Hapus seluruh karakter dari posisi kursor sampai akhir baris
dd Hapus satu baris pada kursor
:d Hapus satu baris pada kursor

Yanking Teks:

Seperti pada penghapusan, hampir semua perintah yank dilakukan dengan mengetik y diikuti perintah gerakan kursor. Misal,y$ yanks ke akhir baris. Dua perintah yank yang lain adalah:

yy Yank baris saat ini
:y Yank baris saat ini

Pengubahan Teks:

Perintah pengubahan teks ini adalah perintah untuk melakukan penghapusan teks dan masuk ke mode insertion. Dilakukan dengan mengetikkan c diikuti sebuah gerakan kursor. Misal cw akan menghaus sebuah kata dan memasuki mode insertion. Perintah lainya adalah:

Hapus teks dari posisi kursor sekarang sampai akhir baris, dan kemudian masuk mode instertion
cc Hapus satu baris teks di mana posisi kursor berada, dan masuk ke mode insertion

Penanda

Penanda dipake untuk menandai posisi kursor saat ini dengan nama berupa sebuah huruf (kecil). Penanda juga digunakan untuk membatasi jangkauan.

mc Mengeset penanda c pada posisi kursor sekarang.
`c Menuju ke posisi penanda
‘c Menuju ke awal baris posisi penanda

Pencarian String:

/string Melakukan pencarian string ke depan
?string Melakukan pencarian string mundur
Menuju hasil pencarian string selanjutnya
N Menuju hasil pencarian string sebelumnya

Replace

Melakukan pencarian dan hasil pencariannya diganti dengan string tertentu. Menggunakan perintah :s. Ini umumnya digunakan dalam kombinasi dengan range atau perintah :g.

:s/pattern/string/flags Lakukan pencarian terhadap pola pattern dan ganti dengan string sesuai dengan flagsnya
Flag – ganti semua pola yang ditemukan
Flag – meminta konfirmasi bila terjadi penggantian
& Ulangi perintah :s terakhir

Count:

Hampir semua perintah dapat didahului dengan sebuah angka, yang menunjukkan berapa kali perintah tersebut dieksekusi. Misal 6dw akan menghapus 6 kata; dan 2fe akan menggerakkan kursor maju sampai ditemukan 2 kali huruf e.

Range/Jangkauan:

Range digunakan di depan perintah yang menggunakan colon (titik dua). Misal :3,7d akan menghapus baris 3-7. Range umumnya dikombinasikan dengan perintah :s untuk melakukan penggantian pada beberapa baris. Contoh lagi:.,$s/pattern/string/g untuk melakukan penggantian dari baris saat ini sampai akhir baris.

:n,m Range – Baris n sampai m
:. Range – Baris sekarang
:$ Range – Baris terakhir
:’c Range – Penanda c
:% Range – Semua barisdalam file
:g/pattern/ Range – Semua baris yang sesuai dengan pattern

File:

:w file Menulis ke file
:r file Membaca/membuka file
:n Menuju file berikutnya
:p Menuju file sebelumnya
:e Mengedit file
!!program Ganti baris dengan output dari program

Lainnya:

~ Toggle untuk huruf besar dan huruf kecil
J Menggabungkan baris
. Mengulangi perintah perubahan-teks terakhir
u Membatalkan perubahan terakhir (Undo)
U Membatalkan semua perubahan

Rasanya beberapa perintah di atas sudah cukup mumpuni untuk menggunakan Vi secara efekstif dan efisien. Sering-sering menggunakan dan membiasakan diri dengan perintah-perintah diatas, learning by doing, niscaya anda akan menjadi pendekar VI.

http://adamonline.web.id/linux/menggunakan-vi-editor-linux