Search and Replace: Cara Mencari dan Mengganti Kata di Vim
Halo, para pengguna Vim! Kalian pasti sering banget nih ngerjain tugas atau nulis kode yang panjang-panjang. Nah, pasti ada dong momen di mana kalian perlu ganti satu kata atau frasa yang muncul berkali-kali di seluruh file. Repot banget kan kalo harus ganti satu per satu? Tenang aja, Vim punya fitur keren buat ngeganti kata atau teks secara massal, namanya Search and Replace.
Di artikel ini, kita bakal bahas gimana caranya pake fitur ini biar kerjaan kalian lebih cepet dan efisien. Yuk, simak!
1. Basic Search and Replace
Pertama-tama, kita mulai dari yang paling dasar dulu. Misalnya, kalian mau ganti semua kata “foo” jadi “bar” di seluruh file. Caranya gampang banget:
- Buka file di Vim.
- Tekan
Escbuat pastiin kalian lagi di mode normal. - Ketik
:%s/foo/bar/gterus tekanEnter.
Penjelasan:
:%sartinya kita mau ngeganti teks di seluruh file (%).fooadalah teks yang mau dicari.baradalah teks penggantinya.gdi akhir artinya “global”, jadi semua kemunculan “foo” di satu baris bakal diganti. Kalo nggak pakeg, cuma kemunculan pertama di tiap baris aja yang diganti.
2. Confirm Before Replacing
Kadang-kadang, kita pengen liat dulu teks yang mau diganti biar nggak salah. Nah, Vim bisa kasih opsi buat konfirmasi sebelum ngeganti. Caranya, tambahin c di akhir perintah:
:%s/foo/bar/gc
Nanti, Vim bakal nunjukkin setiap kemunculan “foo” dan nanya apa mau diganti atau nggak. Kalian bisa pilih:
ybuat ganti.nbuat skip.abuat ganti semua tanpa konfirmasi lagi.qbuat berhenti.lbuat ganti yang ini trus berhenti.^E(Ctrl + E) atau^Y(Ctrl + Y) buat scroll layar.
3. Case-Insensitive Search
Kalo kalian nggak peduli sama huruf besar atau kecilnya, bisa pake \c di pattern. Misalnya:
:%s/foo\c/bar/g
Ini bakal ngeganti “foo”, “FOO”, “fOo”, dll., jadi “bar”.
4. Mengganti di Baris Tertentu
Kalo kalian cuma mau ganti di baris-baris tertentu, ganti % dengan range barisnya. Misalnya, mau ganti dari baris 10 sampe 20:
:10,20s/foo/bar/g
Atau, kalo mau ganti dari baris sekarang sampe akhir file:
:.,$s/foo/bar/g
5. Menggunakan Regular Expressions
Vim juga support regular expressions buat pattern yang lebih kompleks. Misalnya, mau ganti semua angka jadi “NUM”:
:%s/\d\+/NUM/g
Penjelasan:
\dartinya digit (0-9).\+artinya satu atau lebih digit.
Atau, misalnya mau ganti semua kata yang diawali “prefiks” jadi “sufiks”:
:%s/prefiks\(\w\+\)/sufiks\1/g
Penjelasan:
\(\w\+\)artinya satu atau lebih karakter kata (A-Z, a-z, 0-9, _), dan disimpen sebagai grup.\1artinya teks yang cocok sama grup pertama.
6. Mengganti dengan Baris Baru
Kadang, kita perlu ngeganti teks sama baris baru. Di Vim, baris baru direpresentasiin pake \r. Misalnya, mau ganti semua koma jadi baris baru:
:%s/,/\r/g
7. Menggunakan Register untuk Teks Pengganti
Kalo kalian mau pake teks yang udah disalin (yank) sebagai teks pengganti, bisa pake register. Misalnya, kalian udah nyalin teks “hello” ke register a (pake "ayy buat yank satu baris ke register a), trus mau ganti semua “foo” jadi “hello”:
:%s/foo/\=@a/g
Penjelasan:
\=artinya kita mau pake ekspresi.@aartinya isi registera.
8. Mengganti Hanya di Dalam Visual Selection
Kalo kalian mau ngeganti cuma di bagian yang udah dipilih pake visual mode, caranya:
- Pilih teks pake
v,V, atauCtrl + v. - Tekan
:buat masuk ke command mode. Nanti muncul:'<,'>. - Lanjutin pake perintah replace biasa, misalnya
s/foo/bar/g.
9. Mengganti di Banyak File
Kalo kalian mau ngeganti teks di banyak file sekaligus, bisa pake :argdo atau :bufdo. Misalnya, mau ganti “foo” jadi “bar” di semua file .txt:
- Buka semua file
.txtdi direktori saat ini::args *.txt - Jalankan
:argdo %s/foo/bar/g | update
Penjelasan:
:argdobakal ngejalanin perintah di semua file yang ada di arglist.%s/foo/bar/gbuat ngeganti teks.| updatebuat ngesave perubahan di tiap file.
10. Menggunakan History Perintah
Kalo kalian sering pake perintah replace yang mirip-mirip, bisa pake history perintah buat ngehemat waktu. Tekan q: buat buka jendela history perintah, trus pilih perintah yang mau dipake lagi.
Nah, itu dia beberapa cara pake fitur search and replace di Vim. Dengan fitur ini, kalian bisa ngeganti teks secara massal dengan cepat dan efisien. Selamat mencoba!