Ada beberapa cara untuk melakukan ini.
Di dalam Direktori Saat Ini
Jika Anda ingin melakukan pencarian / ganti di pohon proyek, Anda dapat menggunakan daftar argumen Vim .
Cukup buka Vim dan kemudian gunakan :argsperintah untuk mengisi daftar argumen. Anda dapat memasukkan beberapa nama file atau bahkan gumpalan.
Sebagai contoh, :args **/*.rbsecara rekursif akan mencari direktori file ruby saat ini. Perhatikan bahwa ini juga seperti membuka Vim dengan vim **/*.rb. Anda bahkan dapat menggunakan perintah shell finduntuk mendapatkan daftar semua file di direktori saat ini dengan menjalankan:
:args `find . -type f`
Anda dapat melihat daftar args saat ini dengan menjalankannya :argssendiri. Jika Anda ingin menambah atau menghapus file dari daftar, Anda dapat menggunakan perintah :argaddatau :argdeletemasing-masing.
Setelah Anda puas dengan daftar tersebut, sekarang Anda dapat menggunakan :argdoperintah Vim yang kuat yang menjalankan perintah untuk setiap file dalam daftar argumen::argdo %s/search/replace/g
Berikut ini beberapa kiat untuk mencari (berdasarkan beberapa komentar):
- Gunakan batas kata jika Anda ingin mencari "foo" tetapi bukan "foo_bar". Gunakan
\<dan \>susun di sekitar pola pencarian seperti::argdo %s/\<search\>/foobar/g
- Gunakan
/cbendera pencarian jika Anda ingin Vim meminta konfirmasi sebelum mengganti istilah pencarian.
- Gunakan
/ebendera pencarian jika Anda ingin melewati kesalahan "pola tidak ditemukan".
- Anda juga dapat memilih untuk menyimpan file setelah melakukan pencarian:
:argdo %s/search/replace/g | update. Di sini, :updatedigunakan karena hanya akan menyimpan file jika sudah berubah.
Buka buffer
Jika Anda sudah memiliki buffer terbuka yang ingin Anda lakukan pencarian / ganti, Anda dapat menggunakan :bufdo, yang menjalankan perintah untuk setiap file dalam daftar buffer Anda ( :ls).
Perintahnya sangat mirip dengan :argdo: :bufdo %s/search/replace/g
Mirip dengan :argdodan :bufdo, ada :windodan :tabdoyang bertindak masing-masing pada windows dan tab. Mereka lebih jarang digunakan tetapi masih berguna untuk diketahui.
/cbendera untuk mengkonfirmasi penggantian.