vim find and replace

0
107

halo sobat sekolahlinux, pada tutorial kali ini saya coba memberikan tips dan tutorial bagaimana kita memanipulasi wording/config didalam sebuah file atau config untuk mempermudah pekerjaan sysadmin/devops/sre

di keseharian saya, biasanya saya menggunakan tools2 dibawah ini

  • vim > cli
  • sublim > gui
  • shell (zsh,bash,sh) > cli

pada artikel kali ini saya hanya akan membahas tools yang cli based saja yaitu vim dan shell

vim

mari mulai dengan vim, vim biasanya saya gunakan untuk melakukan edit pada sebuah file, selain simple juga kaya akan feature yang saya butuhkan, namun pada case ini saya akan berfokus pada feature find dan find & replace, pada vim disini saya biasanya menggunakan perintah sederhanya untuk menemukan sesuatu, pada saat membuka vim kita ada didalam “normal mode” disini kita bisa memasukan “/” untuk mengakses mode find disertai keyword yang ingin ditemukan maka jadi “/nginx6”

FIND

misal pada contoh dibawah saya coba menemukan keyword yang mengandung “nginx6”, bisa dilihat pada hightlight line langsung mengarah ke line yang mengandung keyword “nginx6”, jika ada banyak word “nginx6” kamu bisa klik button “N” pada keyboard untuk “next to other finding”

FIND & REPLACE V1

lalu selanjutnya saya ingin mereplace word “nginx6” menjadi “nginx-kodok” maka kalian harus keluar dari mode find ke mode normal dengan klik button “esc” pada keyboard kalian, selanjutnya pada normal mode kalian ketikan “%s” untuk masuk ke mode find & replace

misal pada contoh dibawah saya akan coba find “nginx6” dan replace dengan “nginx-kodok” jika sudah klik button “enter”

maka keyword akan di replace dengan “nginx-kodok”

FIND & REPLACE V2

pada find & replace v2 ini saya akan coba menambahkan regex misal untuk memanipulasi 2 line langsung, disini untuk new line pada existing dan newline keyword baru menggunakan regex yg berbeda di existing kita menggunakan “\n” sedangkan pada keyword baru menggunakan “\r” yang artinya split

maka keyword yang berbeda line akan di replace seperti gambar dibawah

FIND & REPLACE V3

pada find & replace v3 ini saya akan coba melakukan reuse patern dari hasil find word existing, dan melakukan replace dan reuse patern yang sebelumnya pada replace, berikut ini patern nya

:%s/kata\(.*\)-kata\(.*\)-kata\(.*\)-kata\(.*\)/kata\4-kata\3-kata\2-kata\1/g

contoh pada gambar dibawah ini

maka hasilnya akan seperti dibawah ini

FIND & REPLACE V4

pada find & replace v4 ini saya akan coba remove empty line, contoh seperti pada gambar dibawah ini

maka hasilnya akan seperti pada gambar dibawah ini, 3 empty line berhasil di delete

sebenernya masih banyak lagi patern regex yang bisa kita manfaatkan untuk memanipulasi word didalam sebuah file menggunakan vim, dan juga mode dan istilah yang kamu bisa pelajari dari reference link dibawah

  • https://vimregex.com/
  • https://www.freecodecamp.org/news/vim-editor-modes-explained/
  • https://www.vimfromscratch.com/articles/vim-macros