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> /GTento 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/GHledat 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/GChcete -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/GVyhledejte 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> /gcVýš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átChcete -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átVyhledejte 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> /Já/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> /GChcete -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/GChcete -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 xPodobně 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/GZÁ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.