Tekstin etsiminen ja korvaaminen Vimissä Linuxissa

vim on yksi Linuxin suosituimmista tiedostoeditoreista. Osa suosiosta johtuu vimin komentorivitilasta, jonka avulla käyttäjät, erityisesti ohjelmistokehittäjät ja kokeneet käyttäjät voivat optimoida ajan tiedostojen muokkaustoimintoihin.

Tässä artikkelissa näemme, kuinka löytää ja korvata tekstiä vim komentorivitila.

Avataan ensin tekstitiedosto vimissä:

vim testi.txt

Vim toimii eri tiloissa. Kaksi tärkeintä tilaa ovat yllä mainittu komentotila ja toinen on Insert-tila, jota käytetään tiedoston sisällön muokkaamiseen.

Kun tiedosto avataan, vim toimii oletusarvoisesti komentotilassa. Voit painaa i siirtyäksesi lisäystilaan.

Komentotilassa voit aloittaa vim-komentojen kirjoittamisen suoraan; ne näkyvät terminaalin alaosassa. Tämä alaosa toimii integroituna komentokehotteena vimissä.

Merkkijonon etsiminen, kirjoita kenoviiva / ja sen jälkeen haettava merkkijono.

Esimerkiksi: /koira

Kuten yllä näkyy, se vie kohdistimen merkkijonon seuraavaan esiintymään kohdasta, johon kohdistin on sijoitettu. Kursori asetettiin merkkijonoon ruskea kuten aikaisemmassa kuvassa näkyy. Etsi seuraavat tapahtumat painamalla n. Viimeisen esiintymän jälkeen se palaa ensimmäiseen ja antaa viestin "haku osui ALALLA, jatkuu ylhäällä".

Erikoismerkin sisältävän merkkijonon etsiminen, tai esimerkiksi merkit, kuten plus (+) tai välilyönti, edeltävät merkkiä vinoviivalla:

Esimerkiksi: /C\+

Etsi ja korvaa ensimmäisen merkkijonon esiintymän riviltä, asetamme kohdistimen tälle riville ja käytämme seuraavaa komentoa:

Esimerkiksi: :s/koira/tiikeri

Kuten yllä olevasta kuvakaappauksesta näet, kolmas rivi, johon kohdistin on sijoitettu, sana koira ha on korvattu tiikeri käskyn ohjeiden mukaan.

Etsiä ja korvata kaikki merkkijonon esiintymät riviltä, käytä /g lopussa.

Esimerkiksi: :s/kissa/koira/g

Löytää ja korvata kaikki esiintymät maailmanlaajuisesti, käytämme %s vain sen sijaan s:

Esimerkki: :%s/koira/hiiri

Jos merkkijono koostuu erikoismerkistä, kuten välilyönnistä, sitä voidaan edeltää vinoviiva, kuten edellä on esitetty.

? Kippis!