Ako nájsť a nahradiť text vo Vim v systéme Linux

vim je jedným z najpopulárnejších editorov súborov v systéme Linux. Časť popularity je spôsobená režimom príkazového riadka vim, ktorý umožňuje používateľom, najmä vývojárom softvéru a pokročilým používateľom, optimalizovať čas na operácie úpravy súborov.

V tomto článku uvidíme, ako nájsť a nahradiť text v vim režim príkazového riadku.

Najprv otvorme textový súbor vo vim:

vim test.txt

Vim funguje v rôznych režimoch. Dva najdôležitejšie režimy sú vyššie uvedený príkazový režim a druhý režim vkladania, ktorý sa používa na úpravu obsahu súboru.

V predvolenom nastavení, keď je súbor otvorený, vim pracuje v príkazovom režime. Môžete stlačiť i prejdite do režimu vkladania.

V príkazovom režime môžete priamo začať písať príkazy vim; zobrazujú sa v spodnej časti terminálu. Táto spodná časť funguje ako integrovaný príkazový riadok vo vim.

Ak chcete vyhľadať reťazec, zadajte spätnú lomku / nasleduje reťazec, ktorý sa má vyhľadať.

Napríklad: /pes

Ako je vidieť vyššie, presunie kurzor na ďalší výskyt reťazca z pozície, kde je umiestnený kurzor. Kurzor bol umiestnený na reťazci hnedá ako je znázornené na predchádzajúcom obrázku. Ak chcete nájsť ďalšie výskyty, stlačte n. Po poslednom výskyte sa vráti na prvé miesto a poskytne správu „vyhľadávanie bolo stlačené DOLE, pokračuje sa na vrchu“.

Ak chcete vyhľadať reťazec so špeciálnym znakom, alebo napríklad znaky ako plus (+) alebo medzera, pred znakom s lomkou:

Napríklad: /C\+

Ak chcete nájsť a nahradiť prvý výskyt reťazca na riadku, umiestnime kurzor na tento riadok a použijeme nasledujúci príkaz:

Napríklad: :s/pes/tiger

Ako môžete vidieť na obrázku vyššie, tretí riadok, kde je umiestnený kurzor, slovo pes bol nahradený tiger ako je uvedené v príkaze.

Ak chcete nájsť a nahradiť všetky výskyty reťazca na riadku, použiť /g nakoniec.

Napríklad: :s/mačka/pes/g

Globálne nájsť a nahradiť všetky výskyty, používame %s namiesto iba s:

Napríklad: :%s/pes/myš

Ak reťazec pozostáva zo špeciálneho znaku, ako je medzera, môže mu predchádzať lomka, rovnako ako predtým.

? Na zdravie!