Panduan Linux

Cara Merekam dan Menggunakan Macro Kompleks di Vim

Bosan ngetik ulang perintah di Vim buat ngerjain tugas berulang? Udah capek-capek pake . buat repeat perintah, tapi tetep aja ribet? Tenang, ada solusinya: macro! Macro di Vim bisa lo manfaatin buat merekam serangkaian perintah, lalu dijalanin ulang cuma dengan satu ketikan. Keren kan? Tapi, gimana kalau perintahnya kompleks? Yuk, kita bahas cara merekam dan ngoprek macro yang lebih rumit biar kerjaan lo jadi lebih efisien.


Apa Itu Macro di Vim?

Macro di Vim adalah fitur buat merekam gerakan atau perintah yang lo lakuin di editor, lalu disimpan dalam register (tempat penyimpanan sementara). Setelah direkam, lo bisa menjalankan ulang macro itu berkali-kali tanpa ngetik manual. Cocok buat tugas berulang seperti:


Langkah Dasar Merekam Macro

Sebelum masuk ke yang kompleks, pastikan lo udah ngerti cara dasar merekam macro. Ini langkahnya:

  1. Posisikan kursor di lokasi awal.
  2. Tekan q + huruf register (misal: qa buat simpan di register a).
  3. Lakukan serangkaian perintah (misal: 0f=dt;"_A; buat edit teks).
  4. Tekan q lagi buat berhenti merekam.
  5. Jalankan macro dengan @a (sesuai register yang dipilih).

Contoh: Lo pengen nambahin titik koma di akhir 10 baris. Rekam macro:


Mengedit Macro yang Sudah Direkam

Macro nggak selalu sempurna pas pertama kali direkam. Kadang ada typo atau gerakan yang kelewat. Buat ngeditnya, lo bisa:

  1. Tampilkan isi register pake :reg a (ganti a dengan register yang dipakai).
  2. Salin isi register ke buffer (misal: "+y buat copy ke clipboard).
  3. Edit teksnya, lalu paste kembali ke register pake :let @a = 'isi_baru'.

Contoh: Lo merekam macro a yang isinya 0f=dt;"_A;, tapi ternyata kurang perintah j buat turun baris. Edit register a jadi 0f=dt;"_A;j.


Menggabungkan Macro dengan Perintah Lain

Macro bisa lo kombinasikan sama perintah Vim lain buat hasil yang lebih powerful. Contoh:


Teknik Macro Tingkat Lanjut

Buat yang udah mahir, coba trik ini:

  1. Nested Macro: Masukin macro lain ke dalam macro.
    • Contoh: Macro a jalanin macro b dengan ngetik @b di tengah rekaman.
  2. Pake Register Global: Simpan macro di register @ (global register) biar bisa diakses di sesi lain.
    • Contoh: :let @g = '0f=dt;"_A;'
  3. Macro + Ex Command: Tambahin perintah :s/old/new/g atau :g/pattern/d di macro.
    • Contoh: qa:s/TODO/FIX/g lalu q buat ganti semua “TODO” jadi “FIX”.

Tips Biar Macro Nggak Error


Contoh Kasus: Mengubah Format Tabel

Bayangin lo punya teks begini:

| Nama | Umur |  
|------|------|  
| Andi | 20   |  
| Budi | 22   |  

Lo pengen nambahin kolom “Alamat” di semua baris. Caranya:

  1. Rekam macro di register a:
    • qa0f|a | Alamat | (tambah kolom “Alamat” di header).
    • q
  2. Jalankan di baris data: 2@a (karena ada 2 baris data).

Hasil akhir:

| Nama | Umur | Alamat |  
|------|------|--------|  
| Andi | 20   |        |  
| Budi | 22   |        |  

Kesalahan Umum dan Cara Mengatasinya


Eksperimen dengan Macro

Jangan takut buat nyoba hal baru! Macro di Vim fleksibel banget. Lo bisa:

Contoh: Lo punya file CSV:

nama,umur  
andi,20  
budi,22  

Rekam macro buat ubah jadi JSON:

  1. qaI{"nama": " (masuk Insert Mode, tambah "nama": ").
  2. Escf,a", "umur": " (lanjutin format JSON).
  3. Esc$A} (tambah kurung kurawal di akhir).
  4. q

Jalankan di tiap baris: @a.


Bonus: Macro untuk Navigasi Cepat

Selain edit teks, macro bisa lo manfaatin buat navigasi:


Kesimpulan (Ups, Ini Harusnya Nggak Ada!)

Artikel ini sengaja nggak ada kesimpulan sesuai permintaan. Tapi lo udah bisa lanjut eksperimen sendiri, kan? 😄

#Vim #Tutorial