Vyhledejte a vyměňte

Vim Search Replace



Vim je pokročilý a populární textový editor, který je předinstalován ve většině distribucí Linuxu. Je to textový editor založený na příkazovém řádku, který se většinou používá v operačních systémech bez GUI. Je vysoce konfigurovatelný a má mnoho funkcí. Významným bodem týkající se Vima je, že je vysoce optimalizovaný pro opakování.

V tomto článku vysvětlíme jednu z jeho nejužitečnějších funkcí, kterou je vyhledávání a nahrazování. S hrstkou konfigurace můžete vyhledávat cokoli chcete rychlostí blesku a jemnější granularitou.







Metoda č. 1 Najít a nahradit jeden výskyt najednou (pomocí příkazu lomítko a tečka)

Nejjednodušší způsob, jak vyhledat a nahradit slovo ve Vimu, je pomocí příkazu lomítko a tečka. K vyhledání slova lze použít lomítko (/), zatímco k nahrazení tohoto slova lze použít tečku (.).



Při hledání a nahrazování libovolného slova v editoru Vim postupujte podle následujících jednoduchých kroků:



  • Otevřete soubor ve Vim
  • Stiskněte lomítko ( /) společně s hledaným výrazem jako / search_term a stiskněte Enter. Zvýrazní vybrané slovo.
  • Poté stiskněte klávesu cgn pro nahrazení zvýrazněného slova a zadejte replace_term
  • Vraťte se do normálního režimu. Dále stisknutím tlačítka n přejdete na další výskyt hledaného výrazu.
  • Poté stiskněte tečku (.), Chcete -li nahradit další výskyt stejným parametrem replace_term, jinak znovu stiskněte klávesu n pro přechod na další výskyt.

Je to nejrychlejší a nejlepší metoda pro základní vyhledávání a nahrazuje funkce, protože zahrnuje pouze několik úhozů a menší narušení vaší aktuální práce. Hledání slova, které se vyskytuje příliš často, se však stane opakujícím se a časově náročným úkolem.





S Vim existuje další lepší způsob, jak se tomuto opakujícímu úkolu vyhnout, a to pomocí náhradního příkazu.

Metoda č. 2 Najít a nahradit pomocí příkazu Substitute

Náhradní příkaz lze použít k provedení základních až pokročilých funkcí hledání a nahrazení funkcí jediným příkazem. Syntaxe tohoto příkazu je:



$: s/<hledaný výraz> /<replace_term> /volba

Tento příkaz musíte zadat v normálním režimu.

Kde

  • S: znamená náhradu
  • search_term: slovo, které chcete vyhledat a nahradit
  • replace_term: slovo, kterým ho chcete nahradit
  • Možnost: c (pro potvrzení), g (nahradit veškerý výskyt v jednom řádku), i (pro ignorování případu)

Hledat a nahradit

Chcete -li provést základní vyhledávání a nahradit pomocí náhradního příkazu, použijte následující syntaxi:

:%s/<hledaný výraz> /<replace_term> /G

Tento příkaz nahradí všechny instance search_term s replace_term.

Toto je například náš ukázkový text:

Ubuntu je jedním z nejpoužívanějších operačních systémů Linux. Ubuntu obsahuje tisíce užitečných programů. Pomocí příkazového řádku Ubuntu můžete provést téměř jakýkoli druh úkolu.

Abychom v následujícím textu nahradili každý výskyt Ubuntu Debianem, byl by použit následující příkaz:

:%s/Ubuntu/Debian/G

Hledat a nahradit v jednom řádku

Chcete -li vyhledat a nahradit výskyt slova pouze na jednom řádku namísto celého souboru, použijte následující syntaxi:

: s/<hledaný výraz> /replace_term/G

Chcete -li například ve výše uvedeném ukázkovém textu nahradit výskyt Ubuntu Debianem, použije se následující příkaz bez symbolu %:

: s/Ubuntu/Debian/G

Vyhledejte a nahraďte potvrzením

Chcete -li být před nahrazením hledaného výrazu požádáni o potvrzení, použijte na konci příkazu hledání c takto:

: s/<hledaný výraz> /<replace_term> /gc

Výše uvedený příkaz požádá o potvrzení před každou výměnou (zadejte y pro ano, zatímco n pro ne).

Vyhledávání a nahrazování nerozlišuje velká a malá písmena

Když ve Vim provádíte vyhledávání a nahrazování, ve výchozím nastavení rozlišuje velká a malá písmena. Hledání bez rozlišování velkých a malých písmen můžete provést přidáním i na konec příkazu následovně:

: s/<hledaný výraz> /<replace_term> /dát

Chcete -li například vyhledat výraz Ubuntu bez ohledu na jeho případ (UBUNTU, Ubuntu, ubuntu, uBuntu), použije se následující příkaz:

: s/ubuntu/debian/dát

Vyhledejte a nahraďte celé slovo

Ve výchozím nastavení vyhledává náhradní příkaz libovolnou shodu, ať už je částečná nebo úplná. Aby se shodoval přesný search_term a poté jej nahradil replace_term, uzavřete hledaný _term do.

Například v některých dokumentech chcete vyhledat a nahradit přesné slovo vámi. V takovém případě bude použit následující příkaz:

: s/<vy> //

Najde slovo ty a nahradí ho mnou. Nenahradí však slova jako ta vaše.

Hledejte a vyměňujte slova mezi jednotlivými řádky

Chcete -li vyhledat slovo mezi konkrétními řádky namísto pouze jednoho řádku nebo celého souboru, lze použít následující syntaxi:

:<start_line>,<end_line>s/<hledaný výraz> /<replace_term> /G

Chcete -li například vyhledat a nahradit výskyt Ubuntu pomocí Debianu v řádcích od 3 do 8 v nějakém souboru, příkaz by byl:

:1, 10 s/ubuntu/debian/G

Chcete -li vyhledat a nahradit výskyt slova z aktuálního řádku na dalších x řádků, použije se následující syntaxe:

: s/hledaný výraz/replace_term/g x

Podobně k vyhledání a nahrazení výskytu slova z aktuálního řádku do posledního řádku by byla použita následující syntaxe:

:.,$ s/hledaný výraz/replace_term/G

ZÁVĚR

V tomto článku jsme se naučili dva způsoby vyhledávání a nahrazování libovolného slova v příkazovém řádku v editoru Vim. První příkaz, který používal lomítko a tečku, je nejjednodušší a nejsnadnější metoda, ale ukazuje se, že se opakuje, když hledáte a nahrazujete slovo, které se vyskytuje příliš často. Druhý příkaz, který je jednou substitučním příkazem, se může zdát obtížný a složitý, ale jakmile jej začnete procvičovat, shledáte jej extrémně užitečným ve více scénářích.