Belajar Menggunakan Perintah :cdo dan :argdo Pada NVim

mrfdn author

Rafi

Tutorial cara menggunakan :cdo dan :argdo untuk melakukan search and replace string tertentu pada keseluruhan file

mrfdn.com - Vim/Nvim memiliki sejumlah fitur yang memudahkan kita untuk mengerjakan task yang banyak.

Salah satunya adalah :cdo dan :argdo

Kedua perintah tersebut bisa digunakan untuk melakukan search and replace terhadap string / kata yang terdapat di dalam file.

Jadi pilh salah satu saja, yang mana yang ingin digunakan.

Jika kita bekerja dengan banyak file, tentu akan repot jika melakukan pencarian satu per satu string yang ingin diganti. Maka dari itu kenapa tidak gunakan saja fitur ini.

Fitur ini juga yang saya cari karena pada Vscode ini sangat mudah dilakukan, tetapi pada Nvim saya baru mempelajarinya.

Jadi langsung saja, bahan yang dibutuhkan adalah :

  • Nvim
  • Telescope Plugin

Telescope disini hanya digunakan untuk perintah :cdo saja.

Telescope disini berguna untuk menangkap daftar file yang akan direplace.

Perbedaan :cdo dan :argdo

Sebelum melakukan tutorial perintah cdo dan argdo maka perlu diketahui perbedaan antara kedua perintah ini.

cdoargdo
lebih mudah dijalankancukup sulit dijalankan
bisa me-replace semua string jika tidak jeli melihat pwd tempat bekerjaharus pilih pwd dulu yang akan dieksekusi

Jadi, pastikan terlebih dahulu pwd dimana anda ingin mengeksekusi perintah ini, karena jika salah maka semua file akan berubah.

Tutorial menjalankan perintah :cdo dan :argdo

Pertama-tama di sini saya menggunakan Nvim, karena saya sudah menemukan pengaturan yang pas saat ini.

:cdo

Misalnya, jika anda memiliki sejumlah file yang berada di dalam folder projek, terus anda ingin mengganti string tertentu menggunakan perintah :cdo. Misalnya, anda ingin mengganti string cari saya dengan sudah terganti.

  1. Pastikan anda sudah sedang bekerja pada pwd yang tepat.
  2. Tangkap semua file yang berisi string yang ingin diganti menggunakan perintah :Telescope live_grep
  3. Ketik string yang ingin diganti
  4. Setelah ketemu, masih di buffer Telescope live_grep tekan CTRL+q
  5. Akan muncul buffer baru yang berisi semua daftar file yang akan siap di-replace
  6. Jalankan perintah cdo dengan mengetikkan memasukkan perintah sebelum dan sesudah, seperti ini
:cdo s/cari saya/sudah terganti/gc

Setelah menekan enter, anda akan diarahkan ke masing-masing file untuk melakukan konfirmasi replacement.

Tekan y jika ingin mereplace.

Atau jika anda tidak ingin menampilkan pesan konfirmasi ini, maka hilangkan saja c dari perintah cdo di atas sehingga menjadi /g saja.

Periksa kembali hasil replace dari perintah :cdo ini menggunakan Telescope live_grep untuk memastikan semua string tadi sudah terganti.

Save semua file yang sudah terganti dengan perintah :wa (write all)

:argdo

Sedikit berbeda dengan perintah di atas, di sini kita tidak perlu menggunakan Telescope live_grep untuk menangkap setiap file yang ingin direplace ke buffer tertentu.

Tetapi kita harus set terlebih dahulu pwd dimana kita ingin bekerja. Di sini saya ingin mengganti semua file markdown (.md) yang memiliki string cari saya lalu ganti ke

  1. Set direktory/folder yang ingin dilakukan penggantian string dengan :arg path/to/folder/**/*.md. Artinya pilih semua file .md yang terdapat pada folder yang saya inginkan.
  2. Setelah itu ketik :arg, anda akan melihat sebuah buffer terbuka yang berisi sejumlah file .md hasil tangkapan perintah sebelumnya.
  3. Pada buffer baru ini jalankan perintah :argdo dilanjutkan dengan perintah find and replace vim seperti biasanya, seperti ini
:argdo %s/cari saya/sudah terganti/gec | update

Sama seperti di atas, anda akan menemukan buffer konfirmasi. Tekan y untuk replace.

Tapi setelah itu secara otomatis file yang sudah terganti akan terupdate berkat perintah update pada piping yang diberikan. Jadi tidak perlu menjalankan perintah :wa lagi untuk save.

Kesimpulan

Kedua perintah di atas sangat berguna di masa depan jika kita memahaminya.

Demikian tutorial singkat tentang cara menggunakan perintah :cdo dan :argdo pada nvim.

Semoga bermanfaat.

mrfdn author

Rafi

  • 15 year+ of Linux user.
  • 5 years+ blogger and web developer.

Jika artikel yang dibuatnya ternyata bermanfaat, support dengan cara

Baca juga