Cara Mencari dan Mengganti String di Beberapa File dengan Vim

Ada banyak metode untuk mencari dan mengganti kata dalam satu file.

Disini kita akan melakukannya dengan Vim dan tidak hanya satu file yang akan kita eksekusi - melainkan banyak file.

Pertama, kita perlu find untuk mencari file yang ingin kita ubah - perintah find dapat dirangkai secara efektif dan ini sebenarnya hanya dibatasi oleh imajinasi kita.

Penggunaan find untuk menemukan file Markdown:

find . -name '*.md'

find sh Jalankan find --help untuk melihat banyak pilihan.

Setel lebih lanjut pencarian dengan menggunakan grep - untuk mendapatkan file yang hanya berisi teks yang ingin kita ubah, dengan menambahkan:

grep -le '\<png\>' #bukan untuk dieksekusi

Ambil contoh kita akan mencari dan mengubah teks png menjadi webp.

Eksekusi keinginan kita dengan gabungan perintah find dan grep:

vim `find . -name '*.md' -exec grep -le '\<png\>' {} \;` #perintah untuk mencari file yang hanya berisi string 'png' di dalamnya.

find-grep Sekarang kita dapat menerapkan perintah Vim bufdo ke semua file terpilih dan melakukan tindakan pencarian dan penggantian teks dari png menjadi webp:

:bufdo %s/png/webp/gce

bufdo huruf c berguna untuk konfirmasi perubahan teks yang dapat kita pantau langsung.

Setelah selesai, simpan pekerjaan dengan perintah:

:bufdo wqa!

Dinikmati ya


Referensi: How to Search-and-replace Across Multiple Files in Vim