Vim : Column Mode Edit

Salah satu fitur yang paling saya suka dari Vim adalah kemampuannya melakukan column mode edit. Saya pertama kali kenal fitur edit kolom ini dari UltaEdit (teks editor untuk Windows).

Vim menyebut mode edit kolom ini sebagai mode Visual Block.

Fitur ini sangat berguna antara lain untuk :

  • menyisipkan huruf/kata/kalimat yang sama pada beberapa baris sekaligus
  • menghapus huruf/kata/kalimat secara bersamaan pada beberapa baris sekaligus
  • menghapus beberapa baris teks sekaligus

Kata kuncinya adalah sekaligus; mempersingkat pekerjaan yang berulang untuk mengedit sebuah text file.

Yang paling sering saya gunakan misalnya menyisipkan tanda # pada beberapa baris sekaligus. Di beberapa bahasa pemrograman, seperti Bash script, tanda # dipakai untuk menandai baris-baris komentar (comments). Baris yang diawali dengan tanda # berarti dianggap bukan bagian utama program tersebut. Maka ada istilah comment out yang berarti menambahkan tanda # pada baris program untuk menjadikannya sebagai komentar. Dan sebaliknya ada juga istilah uncomment yang menunjuk pada penghapusan tanda #, mengubah komentar menjadi bagian utama dari program.

Biasanya saya perlu itu untuk mengabaikan dulu sementara beberapa baris program, bukan bermaksud menjadikannya sebagai komentar. Bisa dibayangkan bila ada puluhan/ratusan baris yang harus di-“comment out”, berapa kali saya harus mengetikkan tanda #. Nah dengan mode edit kolom tadi menambahkan tanda # jadi mudah, cukup dengan satu kali ketik & semua baris akan kena efeknya.

Berikut adalah contoh penggunaan mode Visual di Vim untuk menyisipkan teks pada beberapa baris sekaligus.

  1. Misalnya saya sedang mengedit file .bashrc. Saya ingin comment out fungsi converttohex seperti yang ditunjukkan pada tangkapan layar berikut ini :
  2. Yang pertama saya lakukan adalah tekan tombol Esc lalu ikuti dengan Control v.

    Akan muncul indikator “– VISUAL BLOCK –” di bagian bawah Vim.
  3. Lalu saya bisa menggunakan tombol panah atas/bawah untuk memilih baris mana saja yang akan saya edit.

    Pada contoh di atas saya ingin menyisipkan tanda # di awal setiap baris fungsi converttohex.
  4. Langkah berikutnya saya perlu menekan tombol Shift i untuk mulai menyisipkan teks. Setelah itu akan muncul indikator “– INSERT –” di bagian bawah Vim.

    Saat menggunakan Vi atau Vim, kita menggunakan tombol “i” (huruf i kecil) untuk mulai mengetikkan teks. Tapi saat sedang berada pada VISUAL BLOCK, kita harus menggunakan huruf I besar (tekan tombol Shift dan huruf i bersamaan) bila ingin mulai mengetikkan teks.
  5. Saya tinggal ketikkan tanda # sekali saja.

    Hmm, padahal tadi saya ingin menambahkan tanda # di beberapa baris sekaligus..kok yang muncul di layar hanya 1 tanda # di baris pertama?
  6. Langkah berikutnya adalah menekan tombol Esc. Ajaibnya begitu saya tekan tombol Esc, tanda # tadi muncul di semua baris yang sudah saya pilih :

Prinsip yang sama bisa dipakai untuk menghapus beberapa kata sekaligus seperti ini :

  1. Tekan tombol Control v lalu blok kolom yang ingin dihapus (gunakan tombol panah atas-bawah-kiri-kanan untuk memilih teksnya) :
  2. Lalu tekan tombol x untuk menghapus kolom yang sudah diblok tadi :

Kira-kira seperti itu cara menggunakan Vim dengan mode Visual Block untuk menambahkan atau menghapus teks pada beberapa baris sekaligus.

Leave a Reply