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> /gTento 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/gHľ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/gNaprí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/gVyhľ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> /gcVyšš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> /gNaprí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/gNa 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 xPodobne 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/gZÁ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.