VIM – najdi a nahraď
- 17. Leden 2008
- Publikováno v Vim
- Napište komentář
V tomto se článku se podíváme na možnosti jaké nám přináší editor VIM při nahrazování textu. Pokud se chcete dozvědět jak nahradit slovo v textu nějakým jiným, jak nahradit text ve více souborech najednou a hlavně jak správně zadat příkaz pro nahrazení pak pokračujte ve čtení. Konkrétně se podíváme na příkazy :substitute, :windo, :tabdo.
Pro nahrazování se používá příkaz :substitute, zkráceně :s.
Jeho syntaxe je na první pohled trošku složitější, ale opravdu jen na první pohled a jen trošku.
V manuálu je popsán takto:
:[range]s[ubstitute]/{pattern}/{string}/[flags] [count]
Na všech řádcích v rozsahu [range] je provedeno nahrazení textu odpovídajícího vzoru {pattern} textem {string}.
Pokud není zadán rozsah [range] a počet [count] je nahrazení provedeno pouze na aktuálním řádku.
Pokud je zadán počet [count] je nahrazení provedeno na zadaném počtu [count] řádků, začíná se na posledním řádku definovaném rozsahem [range]. Pokud není definován rozsah [range] začína se na aktuálním řádku.
Nahrazování se řídí parametry [flags].
Podrobnější vysvětlení jednotlivých částí nahrazovacího příkazu
Rozsah [range]
Možností rozsahu je požehnaně a proto mu v budoucnu věnuji samostatný článek.
Základní použití, ale nastíním hned. Pokud chci nahrazování použít na jednom konkrétním řádku zadám jeho číslo. Pokud chci specifikovat rozsah řádků, použiju jako oddělovač čárku.
Příklady:
5,10 – řádky pátý až desáty
.,10 – od aktuálního do desáteho řádku
.,$ – od aktuálního řádku do konce souboru
% – všechny řádku souboru
Při nahrazování v textu nám nejčastějí stačí požít znak % a provádět tak nahrazení v celém dokumentu.
Vzor {pattern}
Regulární výraz, nebo prostě jen kus textu který chceme nahradit. Pokud výraz vynecháme, použije se naposledy vyhledávaný výraz.
Text {string}
Text, krerým chceme hledaný výraz nahradit.
Parametry [flags]
c – editor si nechá potvrdit každé nahrazení
g – nahrazení se provede ve všech výskytech hledaného textu na řádku
i – nehledí na velikost písmen ve vyhledávaném výrazu (ignorecase)
I – hledí na velikost písmen ve vyhledávaném výrazu
Jednoduché příklady nahrazování
:%s/co nahradit/cim nahradit/g – jednoduché nahrazení
:%s/co nahradit/cim nahradit/gc – nahrazní s potvrzením
Pokud mám nějaké slovo pod kurzorem a chci jeho výskyt nahradit v celém textu, není nic lepšího než stisknout * a tím vlastně provést jeho vyhledávání a pak napsat :%s//cim nahradit/g a je to.
Nahrazování ve více souborech
Nejdříve si všechny soubory otevřeme. Například pomocí :split nazev_souboru nebo do záložek pomocí :tabnew nazev_souboru.
Nahrazení pak provedeme příkazem :windo %s/co nahradit/cim nahradit/g pokud jsme pouzili :split.
Pokud chceme volat nahrazení nad otevřenýma záložkama použijeme :tabdo %s/co nahradi/cim nahradit/g.
Dosud žádný komentář.