Vyhľadajte a vymeňte

Vim Search Replace



Vim je pokročilý a obľúbený textový editor, ktorý je predinštalovaný vo väčšine distribúcií Linuxu. Je to textový editor založený na príkazovom riadku, ktorý sa väčšinou používa v operačných systémoch, ktoré nie sú založené na grafickom rozhraní. Je vysoko konfigurovateľný a má mnoho funkcií. Významným bodom týkajúcim sa Vima je, že je vysoko optimalizovaný na opakovanie.

V tomto článku vysvetlíme jednu z jeho najužitočnejších funkcií, ktorou je vyhľadávanie a nahrádzanie. S niekoľkými konfiguráciami môžete vyhľadávať čokoľvek, čo chcete, rýchlosťou a jemnejšou granularitou.







Metóda č. 1 Nájdenie a nahradenie jedného výskytu naraz (pomocou príkazu lomka a bodka)

Najjednoduchší spôsob vyhľadávania a nahradenia slova vo Vime je pomocou príkazu lomka a bodka. Na vyhľadanie slova je možné použiť lomku (/), na nahradenie slova bodku (.).



Pri vyhľadávaní a nahradení akéhokoľvek slova v editore Vim postupujte podľa týchto jednoduchých krokov:



  • Otvorte súbor vo Vime
  • Stlačte lomku ( /) spolu s hľadaným výrazom ako / search_term a stlačte kláves Enter. Zvýrazní vybrané slovo.
  • Potom stlačte kláves cgn Ak chcete nahradiť zvýraznené slovo a zadajte príkaz replace_term
  • Vráťte sa do normálneho režimu. Ďalej stlačením klávesu n prejdete na ďalší výskyt hľadaného výrazu.
  • Potom stlačte bodku.

Je to najrýchlejšia a najlepšia metóda pre základné vyhľadávanie a nahrádza funkcie, pretože zahŕňa iba niekoľko stlačení klávesov a menšie narušenie vašej aktuálnej práce. Na hľadanie slova, ktoré sa vyskytuje príliš často, sa však stane opakujúcou sa a časovo náročnou úlohou.





V prípade Vim existuje ďalší lepší spôsob, ako sa vyhnúť tejto opakujúcej sa úlohe, a to pomocou náhradného príkazu.

Metóda č. 2 Nájdite a nahraďte pomocou príkazu Nahradiť

Náhradný príkaz je možné použiť na vykonávanie základných až pokročilých vyhľadávacích funkcií a nahradenie funkcií jediným príkazom. Syntax tohto príkazu je:



$: s/<hľadanie_termínu> /<replace_term> /možnosť

Tento príkaz musíte zadať v normálnom režime.

Kde

  • S: znamená náhradu
  • search_term: slovo, ktoré chcete vyhľadať a nahradiť
  • replace_term: slovo, ktorým ho chcete nahradiť
  • Možnosť: c (na potvrdenie), g (nahradiť všetky výskyty v jednom riadku), i (na ignorovanie prípadu)

Hľadať a nahradiť

Na vykonanie základného vyhľadávania a nahradenia pomocou náhradného príkazu použite nasledujúcu syntax:

:%s/<hľadanie_termínu> /<replace_term> /g

Tento príkaz nahradí všetky inštancie parametra search_term hodnotou replace_term.

Toto je napríklad náš ukážkový text:

Ubuntu je jedným z najpoužívanejších operačných systémov Linux. Ubuntu obsahuje tisíce užitočných programov. S príkazovým riadkom Ubuntu môžete vykonať takmer akýkoľvek druh úlohy.

Aby sme v nasledujúcom texte nahradili každý výskyt Ubuntu Debianom, použil by sa nasledujúci príkaz:

:%s/Ubuntu/Debian/g

Hľadať a nahradiť v jednom riadku

Ak chcete vyhľadať a nahradiť výskyt slova iba v jednom riadku namiesto celého súboru, použite nasledujúcu syntax:

: s/<hľadanie_termínu> /replace_term/g

Napríklad na nahradenie výskytu Ubuntu pomocou Debianu vo vyššie uvedenom vzorovom texte by bol použitý nasledujúci príkaz bez symbolu %:

: s/Ubuntu/Debian/g

Vyhľadajte a nahraďte potvrdením

Ak chcete, aby ste pred nahradením hľadaného výrazu boli požiadaní o potvrdenie, použite na konci príkazu hľadania c takto:

: s/<hľadanie_termínu> /<replace_term> /gc

Vyššie uvedený príkaz požiada o potvrdenie pred každou výmenou (zadajte y pre áno, zatiaľ čo n pre nie).

Vyhľadávanie a nahradenie nerozlišuje malé a veľké písmená

Keď vo Vim vykonávate vyhľadávanie a nahrádzanie, v predvolenom nastavení sa rozlišujú malé a veľké písmená. Vyhľadávanie bez rozlišovania malých a veľkých písmen môžete vykonať pridaním i na koniec príkazu nasledovne:

: s/<hľadanie_termínu> /<replace_term> /dať

Napríklad na vyhľadanie výrazu Ubuntu bez ohľadu na jeho prípad (UBUNTU, Ubuntu, ubuntu, uBuntu) sa použije nasledujúci príkaz:

: s/ubuntu/debian/dať

Vyhľadajte a nahraďte celé slovo

Štandardne náhradný príkaz vyhľadá akúkoľvek zhodu, či už je čiastočná alebo úplná. Aby sa zhodoval presný parameter hľadania_termínu a potom ho nahradil výrazom replace_term, priložte hľadaný výraz _term do súboru.

V niektorých dokumentoch napríklad chcete, aby som vyhľadal a nahradil moje presné slovo. V takom prípade sa použije nasledujúci príkaz:

: s/<ty > /Ja/

Nájde slovo vy a nahradí ho mnou. Nenahradí však slová ako tvoje.

Hľadajte a nahraďte slová v konkrétnych riadkoch

Na vyhľadanie slova v konkrétnych riadkoch namiesto iba jedného riadka alebo celého súboru je možné použiť nasledujúcu syntax:

:<štart_line>,<end_line>s/<hľadanie_termínu> /<replace_term> /g

Napríklad na vyhľadanie a nahradenie výskytu Ubuntu pomocou Debianu v riadkoch od 3 do 8 v nejakom súbore bude nasledujúci príkaz:

:1, 10 s/ubuntu/debian/g

Na vyhľadanie a nahradenie výskytu slova z aktuálneho riadka na nasledujúci počet riadkov x by sa použila nasledujúca syntax:

: s/hľadanie_termínu/replace_term/g x

Podobne na vyhľadanie a nahradenie výskytu slova z aktuálneho riadku do posledného riadku bude použitá nasledujúca syntax:

:.,$ s/hľadanie_termínu/replace_term/g

ZÁVER

V tomto článku sme sa naučili dva spôsoby vyhľadávania a nahradzovania ľubovoľného slova v príkazovom riadku v editore Vim. Prvý príkaz, ktorý používal lomku a bodku, je najjednoduchší a najľahší spôsob, ale ukazuje sa, že sa opakuje, keď hľadáte a nahrádzate slovo, ktoré sa vyskytuje príliš často. Ďalší príkaz, ktorý je raz substitučným príkazom, sa môže zdať ťažký a zložitý, ale akonáhle ho začnete cvičiť, zistíte, že je mimoriadne užitočný vo viacerých scenároch.