Welcome to Akhmad Febri Romadon's Blog

Kamis, 10 November 2011

Tutorial VIM


1.     Pendahuluan

Sistem Linux menyimpan info - info konfigurasi dalam file – file teks. Untuk mengubah konfigurasi kita harus mengedit isi file – file teks ini. Karena itu satu komponen utama yang penting dipelajari adalah aplikasi-aplikasi editor teks yang tersedia di sistem Linux. Aplikasi editor teks sendiri tersedia sangat banyak. Bahkan banyak pemrogram free software yang menulis aplikasi editor teks sebagai sarana berlatih menulis program. Salah satu aplikasi editor teks yang banyak digunakan oleh pengguna Linux adalah Vim. Vim merupakan editor teks yang sangat powerful, bahkan dapat dikatakan sebagai salah satu yang paling dihormati diantara berpuluh-puluh aplikasi editor teks yang tersedia karena berbagai keunggulannya. Vim sendiri merupakan pengembangan dari editor teks vi, yang merupakan editor teks klasik dengan sejarah hampir sama tuanya dengan sejarah Unix sendiri.

Gambar 1: Teks Editor Vim

Vim merupakan editor teks yang bersifat modus, artinya editor akan memiliki perilaku yang berbeda sesuai dengan mode aktif saat itu. Pada Vim terdapat tiga mode : Mode Normal (atau disebut juga mode Command), Mode Insert dan Mode Visual. Mode Normal digunakan untuk mengetikkan perintah – perintah Vim (misalnya, keluar dari aplikasi, menyimpan file serta undo dan redo). Mode Insert digunakan untuk menulis atau mengubah isi file yang sedang diedit saat ini. Sementara Mode Visual digunakan untuk menandai / menyorot isi file yang diinginkan, yang nantinya bagian isi file ini dapat dicopy, dicut atau dipaste ke lokasi atau file lain. Mode Normal merupakan mode default yang aktif saat Vim dijalankan. Gambar 1 memperlihatkan tampilan teks editor Vim saat dijalankan dari shell. Pada jendela aplikasi Vim, baris paling bawah merupakan baris status yang menampilkan berbagai informasi, seperti mode aktif, dan nomor baris dan kolom dimana kursor berada.


Editor Modus vs Editor tanpa Modus
Editor tanpa Modus memiliki perilaku seperti aplikasi teks editor pada umumnya: Semua karakter yang diketikkan akan ditambahkan menjadi isi file yang sedang diedit. Sementara pada Editor Modus, pengetikan karakter yang sama dapat menghasilkan respon berbeda, tergantung pada mode aktif. Misalnya, pada mode normal bila kita menekan tombol u, maka Vim akan melakukan operasi Undo, sementara pada mode Insert, apabila kita menekan tombol u, karakter abjad u akan dituliskan ke file.


Informasi mode aktif akan ditampilkan pada bagian pojok kiri bawah aplikasi Vim. Misalnya saat mode Insert aktif, pada pojok kiri bawah akan tampil teks INSERT. Saat mode Visual aktif, pada pojok kiri bawah akan tampil teks VISUAL. Sementara saat mode Normal aktif, pada pojok kiri bawah tidak menampilkan informasi apapun (kosong).

Gambar 2: Perpindahan mode pada Vim
2.     Mode Normal / Command

Mode Normal adalah mode utama dalam Vim. Setelah dijalankan, Vim akan mengaktifkan mode ini secara default. Pada mode ini anda dapat bergerak ke bagian tertentu teks serta menghapus suatu baris teks atau kata tertentu. Saat mode Normal aktif, baris bagian paling bawah Vim akan menunjukkan informasi posisi kursor saat ini, atau posisi persentase dokumen dimana kursor berada. Pada mode ini anda tidak dapat memasukkan teks baru ke file, namun anda bisa menghapus dan mengubah isi file. Anda juga bisa bergerak ke berbagai posisi pada file dengan menggunakan tombol-tombol panah serta tombol PageUp dan PageDown.

Untuk berpindah ke mode Normal (apabila anda berada pada mode lain), tekan tombol Esc, sampai baris status mode pada pojok kiri layar tidak menampilkan teks INSERT atau VISUAL. Mode Normal digunakan pula sebagai mode “perantara”. Untuk berpindah dari mode Insert ke mode Visual atau sebaliknya, mode normal harus diaktifkan terlebih dahulu seperti diperlihatkan pada gambar 2.

3.     Mode Insert

Mode Insert memiliki fungsi utama untuk menambah dan mengedit isi file. Untuk mengaktifkan mode Insert dari mode Normal, tekan tombol A, i atau INSERT. Aktifnya mode Insert akan ditandai dengan teks INSERT pada baris status mode. Mode Insert adalah mode yang umum digunakan oleh teks editor. Untuk berpindah kembali ke mode Normal dari mode Insert, tekan tombol Esc beberapa kali sampai baris status tidak lagi menampilkan teks INSERT. Gambar 3 memperlihatkan tampilan Vim pada mode Insert.


Gambar 3: Vim dalam mode Insert
4.      Mode Visual
Mode Visual digunakan untuk menandai sebagian tertentu dari isi file yang akan digunakan dalam operasi Cut, Copy dan Paste. Untuk masuk ke mode Visual, tekan tombol v. Gambar 4 memperlihatkan tampilan Vim pada mode Visual, dengan Bagian teks yang diblok ditandai.


Gambar 4: Vim dalam mode Visual
Trick and Tips

·         Jalankan perintah vim [namafile] untuk mengedit suatu file. Apabila nama file yang digunakan sebagai parameter vim tidak ditemukan, secara otomatis vim akan membuat file kosong dengan nama tersebut.
·         Tekan tombol i, A atau INSERT untuk mengaktifkan mode Insert. Pada baris status akan muncul teks INSERT. Setelah mode ini aktif, anda dapat:
ü  menggunakan tombol panah untuk bergerak ke posisi tertentu pada file
ü  Menambah/Mengubah isi file dengan mengetikkan teks yang ingin dimasukkan.
ü  Menghapus bagian tertentu dari isi file menggunakan tombol Backspace dan Delete
·         Setelah selesai menulis/memodifikasi/menghapus isi file, tekan Esc untuk kembali ke mode Normal. Mode Normal aktif bila teks INSERT pada baris status hilang. Tekan Esc beberapa kali apabila teks INSERT pada baris status belum hilang.
ü  Di mode normal, ketikkan perintah berikut:
ü  :q! untuk mengabaikan modifikasi yang dilakukan pada file dan keluar dari Vim. (Isi file tidak akan diubah)
ü  :w untuk menyimpan modifikasi yang dilakukan pada file
ü  :wq untuk menyimpan modifikasi yang dilakukan pada file kemudian keluar dari Vim.
·         Tekan tombol Esc beberapa kali untuk berpindah kembali ke mode Normal dari mode lain.
·         Apabila anda perlu melakukan operasi Cut, Copy dan Paste sebagian isi file, pertama – tama  berpindahlah ke mode Normal, lalu arahkan kursor ke bagian awal dari blok teks yang akan dicut atau copy. Kemudian tekan v untuk mengaktifkan mode Visual. Pada baris status akan muncul teks VISUAL, menandakan mode Visual aktif. Setelah itu gerakkan kursor hingga mencapai bagian akhir blok teks yang akan dicut atau copy. Untuk melakukan operasi Cut pada blok teks ini, tekan x. Untuk melakukan operasi Copy pada blok teks ini, tekan y. Kemudian berpindahlah kembali ke mode Normal.
·         Setelah Cut/Copy, untuk melakukan operasi Paste, anda harus mengaktifkan mode Normal terlebih dahulu. Kemudian gerakkan kursor ke bagian file dimana operasi Paste akan dilakukan. Setelah itu tekan p untuk menempelkan blok teks.
·         Untuk melakukan operasi Undo, pindah ke mode Normal, kemudian tekan u.
·         Untuk melakukan operasi Redo, pindah ke mode Normal, kemudian tekan Ctrl-r.


5.     Memulai dan mengakhiri sesi

Operasi dasar yang perlu diketahui tentu saja bagaimana menjalankan dan menghentikan aplikasi. Banyak pengguna pemula Vim kesulitan keluar dari aplikasi Vim karena sifat vim yang berbasis mode. Namun apabila konsep mode ini telah dimengerti, menggunakan vim sama mudahnya seperti editor teks lain.
Vim dapat dijalankan dari terminal dengan mengetikkan perintah vim dari prompt shell. Untuk membuka suatu file dengan vim, gunakan perintah vim [namafile], misalnya vim /etc/network/interfaces. Untuk keluar dari aplikasi vim, terlebih dulu anda harus masuk ke mode Normal, kemudian ketik “:q” (ya, karakter “titikdua” (:) adalah bagian dari perintah yang digunakan untuk keluar dari vim. Selain itu karakter “:” juga digunakan sebagai karakter awal perintah-perintah lain dalam vim).
Untuk keluar dari aplikasi sambil menyimpan modifikasi yang dilakukan pada file, ketik “:wq” atau “:x”. Perintah “:x” hanya berlaku pada Vim, sementara “:wq” merupakan sintaks tradisional dari Vi (w untuk “write”; q untuk “quit”). Anda dapat juga menggunakan perintah “ZZ” (huruf capital , tanpa diawali titik dua) untuk menjalankan operasi save-quit.
Jika file yang akan disimpan belum memiliki nama, atau anda ingin menyimpan hasil modifikasi file dalam nama lain, gunakan perintah “:w [namafile]”, dimana [namafile] digantikan dengan nama file yang anda inginkan. Jika file tersebut telah ada, anda harus menggunakan perintah “:w! [namale]”. Tanda seru (“!”) di Vim biasa digunakan untuk operasi “force”. Perintah tersebut kira – kira  maknanya “simpan ke file dengan nama [namafile], timpa isinya bila file ini sudah ada”).


6.   Menambah dan mengubah teks

Setelah Vim dijalankan, mode default yang aktif adalah mode Normal, dimana anda dapat menggerakkan kursor untuk bergerak ke posisi tertentu dalam file. Tombol-tombol keyboard yang anda tekan akan diterjemahkan sebagai perintah. Untuk mulai menambahkan teks ke file, tekan tombol “I” (dari kata insert), tombol “a” (dari kata append) atau tombol “insert”. Tombol-tombol ini akan mengubah mode aktif menjadi mode Insert. Setelah mode Insert aktif, karakter – karakter yang anda tekan akan dicetak kelayar dan dimasukkan ke file. Untuk keluar dari mode ini, tekan tombol Escape.
Untuk menghapus teks, gunakan tombol backspace atau delete. Untuk menghapus 1 baris sekaligus dimana kursor berada, posisikan kursor pada awal baris, kemudian tekan “dd”.

7.     Pergerakan kursor pada Vim

Editor Vim mewarisi segudang perintah vi untuk menggerakkan kursor ke posisi – posisi tertentu dalam file. Metode yang paling sederhana untuk menuju posisi tertentu adalah dengan menggunakan tombol-tombol panah. Panah atas untuk bergerak keatas, panah kiri kesamping, panah bawah kebawah dan panah kanan ke kanan. Alternatifnya dapat pula menggunakan tombol – tombol h-j-k-l.

H : bergerak ke kiri
J  : bergerak ke bawah
K : bergerak ke atas
L : bergerak ke kanan

Tombol-tombol h-j-k-l untuk menjalankan fungsi yang sama dengan tombol – tombol panah memang sepertinya aneh. Hal ini berkaitan dengan sejarah Vi, yang sudah digunakan pada mesin-mesin “kuno” dimana keyboardnya tidak terdapat tombol-tombol panah. Maka, dipakailah h-j-k-l.

TIPS
Pada mode Insert, tombol-tombol h-j-k-l tidak dapat digunakan untuk menggerakkan kursor. Penekanan tombol-tombol ini akan menyisipkan huruf-huruf h/j/k/l pada teks. Untuk itu guna menggerakkan kursor di mode Insert, gunakan tombol-tombol panah.

Untuk melengkapi tombol-tombol panah dan h-j-k-l yang menggerakkan kursor per baris karakter ke arah tertentu, Vim memiliki juga seperangkat perintah pergerakan kursor tambahan :
b: Bergerak mundur ke kata sebelum posisi kursor berada.
w: Bergerak maju ke kata setelah posisi kursor berada.
^: Bergerak ke awal baris dimana posisi kursor berada.
$: Bergerak ke akhir baris dimana posisi kursor berada.
(: Bergerak ke awal kalimat.
): Bergerak ke akhir kalimat.
{: Bergerak ke awal paragraf.
}: Bergerak ke akhir paragraf.
:[n], dengan [n] adalah nomor baris digunakan untuk bergerak ke baris n pada file.
:$, digunakan untuk bergerak ke baris terakhir pada file.
:1, digunakan untuk bergerak ke baris nomor 1 dari file.

8.     Operasi Cut, Copy dan Paste

Operasi cut, copy dan paste pada teks editor pada umumnya memanfaatkan mouse untuk menandai sebagian teks yang akan digunakan (disebut dengan istilah “blocking”). Vim dapat melakukan fungsi blocking ini tanpa menggunakan mouse. Pada vim terdapat mode Visual untuk menandai bagian – bagian teks yang akan digunakan pada operasi cut, copy dan paste. Untuk mengaktifkan mode Visual, tekan tombol “v”. Untuk menandai teks, posisikan kursor pada awal bagian teks, kemudian tekan “v” untuk mengaktifkan mode Visual. Baris status pada pojok kiri bawah layar akan menampilkan teks “VISUAL”, tanda bahwa mode Visual telah aktif. Kemudian gerakkan kursor hingga mencapai akhir teks yang akan ditandai. Teks dari batas awal hingga batas akhir ini akan berubah warna, menunjukkan teks tersebut telah ditandai. Setelah mencapai akhir batas bagian teks, tekan :
“x“ untuk melakukan operasi Cut
atau
“y” untuk melakukan operasi Copy pada bagian teks tersebut.
Setelah itu, tekan Escape untuk berpindah ke mode Normal. Gerakkan kursor menuju ke lokasi dimana operasi Paste akan dilakukan. Setelah itu tekan “p”, maka bagian teks yang telah ditandai akan disisipkan pada posisi kursor.

9.     Operasi Search dan Replace

Vim menyediakan perintah yang berbeda untuk operasi search maju (pencarian dilakukan dari posisi kursor ke akhir file) dan search mundur (pencarian dilakukan dari posisi kursor ke awal file). Untuk melakukan search maju, masuk ke mode Normal kemudian tekan “/” diikuti frase yang akan dicari pada _le. Misalnya bila anda ingin mencari kata 'kernel' pada file, tekan perintah “/kernel[ENTER]”. Setelah anda menekan enter, Vim akan melakukan search maju dan berhenti saat frase search ditemukan. Untuk melanjutkan pencarian ke lokasi frase search berikutnya, tekan “n”. Demikian seterusnya sampai akhir file.
Operasi search mundur dapat dilakukan dengan menggunakan “?” diikuti frase yang akan dicari pada file. Contohnya “?apt[ENTER]” untuk melakukan pencarian kata “apt” mundur ke awal file dari posisi kursor saat ini. Vim akan berhenti saat frase search ditemukan. Untuk melanjutkan (mundur) ke lokasi frase search berikutnya, tekan “n”.
Sebagai pelengkap operasi search, Vim juga menyediakan sintaks untuk operasi search-replace untuk memudahkan anda mencari string tertentu dan mengubahnya menjadi string lain. Sintaks yang digunakan untuk melakukan operasi search-replace adalah:
%s/[string-asli]/[string-baru]/g untuk melakukan operasi search-replace secara otomatis ke semua kata/frase [string-asli] yang ditemukan pada file.
atau
%s/[string-asli]/[string-baru]/gc untuk melakukan operasi search-replace dengan konrmasi penggantian untuk setiap kata/frase [string-asli] yang ditemukan pada file.
[string-asli] diisi dengan kata atau frase yang akan dicari, sementara format [string-baru] diisi dengan kata/frase yang digunakan untuk menggantikan kata/frase pada [string-asli].
Contoh :
%s/lama/baru/g
perintah operasi search-replace diatas akan menggantikan semua kata “lama” dengan kata “baru” secara otomatis pada file.
%s/kaca/metal/gc
Perintah operasi search-replace diatas akan mencari kata “kaca” dan memunculkan prompt konrmasi, menanyakan apakah pengguna menyetujui penggantian kata “kaca” pada posisi ini menjadi kata “metal”. Apabila setuju, kata kaca akan diganti menjadi metal, kemudian posisi kursor akan menuju ke kata “kaca” yang ditemukan berikutnya serta kembali memunculkan prompot konfirmasi yang menunggu persetujuan pengguna sebelum mengubah kata kaca menjadi metal.

10.   Operasi Undo dan Redo

Meskipun anda sudah menggunakan vim, namun tetap saja anda dapat melakukan kesalahan saat mengedit teks dengan program ini. Untuk menghindari hal-hal yang tidak diinginkan, Vim juga memiliki fasilitas Undo dan Redo. Untuk melakukan operasi Undo terhadap aktivitas terakhir yang dilakukan, masuk ke mode Normal dan tekan u. Sebaliknya, bila anda ingin melakukan operasi Redo, masuklah ke mode Normal dan tekan Ctrl-r.

11.   Memanfaatkan Multiple window pada Vim

Multiple Window merupakan fitur spesifik yang dimiliki Vim. Editor vi yang asli tidak memiliki fasilitas ini. Konon sejarahnya, Bill Joy sang pencipta Vi sudah berpikir untuk menambahkan fitur multiple window untuk vi, namun saat coding fitur ini, tape drive yang menyimpan source code vi rusak. Alhasil, Joy harus menulis ulang sebagian kode program untuk fitur multiple window ini. Sebelum selesai, Joy akhirnya berhenti dan memutuskan membatalkan fitur ini.

Pada vim multiple window diimplementasikan dengan membagi secara horisontal atau vertikal jendela aplikasi. Masing-masing bagian nantinya dapat digunakan untuk mengedit le yang berbeda. Perintah-perintah Vim untuk multiple window adalah:

:split, digunakan untuk membagi jendela aplikasi secara horisontal.
:split [nama file], digunakan untuk membagi jendela aplikasi secara horizontal dan    memuat file dengan nama [nama file] pada salah satu jendela.
:vsplit, digunakan untuk membagi jendela aplikasi secara vertikal.
:vsplit [nama file], digunakan untuk membagi jendela aplikasi secara vertical dan memuat file dengan nama [nama file] pada salah satu jendela.

Untuk berpindah dari satu jendela ke jendela lain, masuk mode Normal dan gunakan tombol “Ctrl-w w”.

0 komentar:

Posting Komentar

Thanks for visiting my blog

 
Powered by Akhmad Febri Romadon - The Best of Student Activity