Mengotomasi edit berulang di nano: merekam rangkaian operasi dengan M-: lalu memutarnya dengan M-;, menggabungkan macro dengan search untuk menerapkan perubahan di banyak tempat, dan menyusun macro yang bisa dipakai berulang untuk tugas berulang

Setelah di episode 20 kalian menjalankan linter dari dalam nano, kita masuk ke fitur yang paling terasa "magis": macros. Macro adalah rangkaian keystroke yang direkam dan bisa diputar ulang — satu kali rekam, seratus kali pakai. Ini adalah gerbang pertama menuju otomasi editing di dalam nano.
Mengapa macro penting? Pekerjaan sysadmin penuh dengan tugas berulang: mengubah indentasi 50 baris, menambahkan sudo di awal 20 baris command, atau memberi prefix baris pada blok config. Dengan macro, semua itu menjadi satu tombol.
Macro nano bekerja seperti voice recorder: nano mencatat setiap keystroke selama perekaman, lalu "memainkan kembali" keystroke yang sama saat macro diputar.
M-: → mulai merekam
<operasi> → nano mencatat semua keystroke
M-; → berhenti merekam (dan siap diputar)
M-; → putar ulang macroprintf 'app=dev\ndb=local\ncache=redis\n' > ~/nano-lab/macro.txt
nano ~/nano-lab/macro.txtMari rekam macro yang mengganti = dengan = (spasi sekitar tanda sama dengan):
M-: — mulai merekam (indikator R muncul di status bar jika set stateflags aktif).^A (awal baris).^W, ketik =, Enter — kursor ke tanda =.= — tanda sama dengan jadi ber-spasi.^E (akhir baris), ^N (baris berikutnya).M-; — perekaman berhenti.M-; lagi — macro diputar: baris kedua ikut berubah.Hasilnya:
app = dev
db = local ← ikut berubah oleh macro
cache = redisKombinasi paling ampuh: macro yang berakhir dengan search, sehingga setiap putaran melompat ke kemunculan berikutnya. Ini pola global edit:
Rekam macro yang "ubah kemunculan berikutnya":
M-: mulai rekam.^W, ketik pola, Enter.M-W (cari lagi) di akhir macro.M-; berhenti.Sekarang setiap M-; mengedit satu kemunculan dan melompat ke kemunculan berikutnya — tekan M-; berulang sampai tidak ada lagi.
Tip
Gabungan macro + search menggantikan sebagian besar replace manual: kalian punya kendali visual atas setiap perubahan (beda dengan replace global A yang buta). Untuk perubahan yang butuh penilaian per-lokasi, macro + search adalah cara paling aman.
Contoh nyata lain — menambahkan indentasi ke baris yang diawali tanda komentar:
M-: mulai rekam.^A (awal baris).# — prefix komentar.^E, ^N — ke baris berikutnya.M-; berhenti.Putar M-; beberapa kali untuk memberi # pada banyak baris berurutan.
Beberapa hal yang perlu diketahui:
^C untuk melihat posisi) karena akan ikut terekam.M-: saat sudah merekam akan membatalkan perekaman.Warning
Macro yang salah rekam akan mengulang kesalahan yang sama berkali-kali. Selalu coba satu putaran macro dulu di file latihan (atau file yang sudah ada backup-nya) sebelum memakainya di file penting. Undo M-U tetap bisa membatalkan hasil macro.
Skenario nyata — file dengan banyak variabel yang harus diberi tanda kutip:
printf 'host=10.0.0.1\nuser=admin\npass=rahasia\n' > ~/nano-lab/config.env
nano ~/nano-lab/config.envRekam macro yang mengubah host=10.0.0.1 menjadi host="10.0.0.1":
M-:^W, ketik 10.0.0.1, Enter.^A, ^F (maju satu karakter melewati =), ketik ".^E, M-B (mundur satu kata, di depan 1), ketik ".M-; berhenti.Putar M-; — satu kemunculan berubah. Lanjutkan untuk semua nilai yang perlu dikutip.
Pada episode 21 ini, kalian telah mengotomasi edit berulang dengan macro.
Inti yang harus dibawa pulang:
M-: mulai merekam; M-; berhenti lalu memutar; M-; lagi untuk putar ulang.Di episode 22 selanjutnya, kita akan membahas custom syntax definitions — menulis blok syntax dan color sendiri di nanorc untuk bahasa atau format internal kalian, memahami header/color/keyword/comment rules, dan menghadirkan highlighting untuk file yang tidak didukung bawaan. Ini puncak kustomisasi visual nano!