Menguasai pencarian dan penggantian di nano: mencari teks dengan ^W, mengulang dengan M-W, mengganti dengan ^\ atau M-R, mengaktifkan mode regex, menyesuaikan arah dan case sensitivity, serta melakukan replace sambil melompat ke baris tertentu

Setelah di episode 5 kalian memotong dan menempel dengan percaya diri, kini kita masuk ke salah satu fitur yang paling sering menyelamatkan pekerjaan sysadmin: search & replace. Bayangkan harus mengubah nama domain di 50 baris nginx.conf, atau mengganti IP backend di seluruh file config. Mengetik ulang satu-satu bukanlah pilihan — dan di situlah search & replace bekerja.
Mengapa episode ini penting? Karena di episode 21 (macro) dan 24 (workflow sysadmin), search adalah bahan baku operasi otomasi. Dan mode regex yang kita pelajari di sini akan dipakai lagi di episode 22 untuk menulis syntax highlighting.
^W (Where Is / Search) membuka prompt pencarian di status bar:
Search (to replace): nginxKetik teks dan Enter — kursor langsung melompat ke kemunculan pertama di depan posisi kursor. Nano menandai hasil dengan huruf terbalik. Tiga tombol paling berguna di prompt ini:
| Shortcut | Fungsi di prompt search |
|---|---|
M-B | Pencarian mundur (backward) |
M-C | Case sensitive (toggle) |
M-R | Mode regex (toggle) |
Arah dan case sensitivitas ditampilkan di prompt — misalnya Search (to replace) (backwards, case sensitive):.
^W mencari satu kemunculan. Untuk mencari berikutnya, jangan tekan ^W lagi — cukup M-W (Where Is Next) untuk melanjutkan ke kemunculan berikutnya dengan pola yang sama. Ini pola yang sama dengan n di vim.
printf 'server=10.0.0.1\nserver=10.0.0.2\nserver=10.0.0.3\n' > ~/nano-lab/server.txt
nano ~/nano-lab/server.txtBuka file, tekan ^W ketik server, Enter, lalu tekan M-W beberapa kali — kursor melompat ke baris 1, 2, 3. Tekan M-B di prompt search untuk arah sebaliknya.
Untuk mengganti teks, tekan ^\ (atau M-R di menu utama) — prompt berubah menjadi replace session:
Search (to replace): server=
Replace with: host=Setelah memasukkan kedua pola, nano menawarkan pilihan per kemunculan:
Replace this instance? (Answering "No" will continue)
Y Yes
A All
N No ^C Cancel| Pilihan | Fungsi |
|---|---|
Y | Ganti instance ini saja, lanjut |
A | Ganti semua (All) sisa kemunculan |
N | Lewati instance ini |
^C | Batalkan seluruh operasi |
Tip
Untuk replace global yang yakin ingin mengganti semuanya, tekan A di prompt pertama. Kombinasi M-R untuk regex + A untuk semua adalah senjata paling ampuh untuk memodifikasi banyak file config sekaligus.
Di dalam prompt search atau replace, tekan M-R untuk mengaktifkan regular expression. Contoh paling umum di dunia sysadmin:
10.0.0. diikuti angka apa pun:Search (to replace): ^server=10\.0\.0\.[0-9]+$
Replace with: server=192.168.1.1YYYY-MM-DD jadi DD-MM-YYYY memakai group \1 sampai \9:Search (to replace): ([0-9]{4})-([0-9]{2})-([0-9]{2})
Replace with: \3-\2-\1Regex di nano memakai sintaks POSIX extended. Tanda ( ... ) untuk group, [ ... ] untuk karakter class, +/* untuk kuantitas, dan ^/$ untuk anchor baris.
Warning
Regex yang keliru bisa mengganti lebih banyak dari yang diinginkan — misalnya pola 10.0.0. tanpa escape titik akan cocok dengan 100000 juga karena . cocok dengan karakter apa pun. Selalu uji pola dengan grep -E dulu, atau cek nano --version | grep -i regex untuk memastikan dukungan regex tersedia di build kalian.
Pola kerja yang sering dipakai sysadmin adalah mencari lalu melompat ke baris:
^W cari teks target → kursor sudah di baris yang tepat.^C untuk melihat nomor baris hasil pencarian.^_ (goto line) kalau perlu melompat ke baris itu lagi nanti.Gabungan ^W + ^C sangat berguna saat melaporkan lokasi error dari log file yang panjang.
| Shortcut | Fungsi |
|---|---|
^W | Mulai pencarian |
M-W | Cari kemunculan berikutnya |
^\ atau M-R | Mulai replace session |
M-B | Arah mundur |
M-C | Case sensitive |
M-R | Toggle regex |
^C | Batalkan |
Pada episode 6 ini, kalian telah menguasai search & replace nano — dari pencarian sederhana hingga replace regex dengan group.
Inti yang harus dibawa pulang:
^W mencari; M-W melanjutkan ke kemunculan berikutnya.^\ atau M-R memulai replace session dengan pilihan Y/A/N/^C.M-R mengaktifkan regex POSIX extended; \1-\9 untuk backreference.M-B, M-C).^C dan ^_ untuk pelaporan lokasi yang presisi.Di episode 7 selanjutnya, kita akan membahas undo/redo & history — membatalkan kesalahan dengan M-U, mengulang dengan M-E, serta riwayat posisi file dengan --positionlog yang menyimpan di mana kursor terakhir kali berada. Kesalahan edit tidak lagi menakutkan!