Paano Maghanap at Palitan ang Teksto sa Vim sa Linux

vim ay isa sa pinakasikat na file editor sa Linux. Bahagi ng katanyagan ay dahil sa command line mode ng vim, na nagbibigay-daan sa mga user, lalo na sa mga software developer at advanced na user na mag-optimize ng oras para sa mga pagpapatakbo ng pagbabago ng file.

Sa artikulong ito, makikita natin kung paano hanapin at palitan ang text in vim command line mode.

Una, buksan natin ang isang text file sa vim:

vim test.txt

Gumagana ang Vim sa iba't ibang mga mode. Dalawang pinakamahalagang mode ang command mode na binanggit sa itaas, at pangalawa ay Insert mode, na ginagamit upang baguhin ang mga nilalaman ng file.

Bilang default, kapag binuksan ang isang file, gumagana ang vim sa command mode. Maaari mong pindutin i upang pumunta sa Insert mode.

Sa Command mode, maaari mong direktang simulan ang pag-type ng mga vim command; lumilitaw ang mga ito sa ibaba ng terminal. Ang ilalim na bahaging ito ay gumaganap bilang isang pinagsamang command prompt sa vim.

Upang maghanap ng isang string, i-type ang backslash / sinusundan ng string na hahanapin.

Halimbawa: /dog

Gaya ng nakikita sa itaas, dinadala nito ang cursor sa susunod na paglitaw ng string mula sa posisyon kung saan inilalagay ang cursor. Ang cursor ay inilagay sa string kayumanggi tulad ng ipinapakita sa naunang larawan. Upang mahanap ang mga susunod na paglitaw, pindutin ang n. Pagkatapos ng huling pangyayari, babalik ito sa una, na nagbibigay ng mensahe “search hit BOTTOM, nagpapatuloy sa TOP”.

Upang maghanap ng string na may espesyal na karakter, o halimbawa ng mga character tulad ng plus (+), o isang space, nauuna ang character na may forward slash:

Halimbawa: /C\+

Upang mahanap at palitan ang unang string na pangyayari sa isang linya, inilalagay namin ang cursor sa linyang iyon, at ginagamit ang sumusunod na utos:

Halimbawa: :s/dog/tiger

Tulad ng makikita mo sa screenshot sa itaas, ang ikatlong linya kung saan nakalagay ang cursor, ang salita aso ha ay pinalitan ng tigre gaya ng itinuro sa utos.

Upang mahanap at palitan ang lahat ng paglitaw ng string sa isang linya, gamitin /g sa dulo.

Halimbawa: :s/cat/dog/g

Upang mahanap at palitan ang lahat ng mga pangyayari sa buong mundo, ginagamit namin %s sa halip na lamang s:

Halimbawa: :%s/aso/mouse

Kung ang string ay binubuo ng espesyal na karakter tulad ng espasyo, maaari itong unahan ng forward slash, sa parehong paraan tulad ng ipinakita sa dati.

? Cheers!