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
Esc
buat pastiin kalian lagi di mode normal. - Ketik
:%s/foo/bar/g
terus tekanEnter
.
Penjelasan:
:%s
artinya kita mau ngeganti teks di seluruh file (%
).foo
adalah teks yang mau dicari.bar
adalah teks penggantinya.g
di 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:
y
buat ganti.n
buat skip.a
buat ganti semua tanpa konfirmasi lagi.q
buat berhenti.l
buat 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:
\d
artinya 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.\1
artinya 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.@a
artinya 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
.txt
di direktori saat ini::args *.txt
- Jalankan
:argdo %s/foo/bar/g | update
Penjelasan:
:argdo
bakal ngejalanin perintah di semua file yang ada di arglist.%s/foo/bar/g
buat ngeganti teks.| update
buat 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!