![]() |
NahrazovßnφJednφm z nejΦast∞ji pou╛φvan²ch p°φkaz∙ editoru ex je nahrazovßnφ. P°φkaz se naz²vßs (substitute) a mß nßsledujφcφ
tvar:
<°ßdky>Jako v╣echny ostatnφ zaΦφnß urΦenφm °ßdk∙, kter²ch se mß nahrazenφ t²kat. Za p°φkazem s se uvßd∞jφ dva °et∞zce, jako
obvykle vymezenΘ lomφtky. Prvnφ urΦuje, jak² text mß editor hledat, a druh² Φφm
jej nahradit.
P°φklad:Takto trivißlnφ p°φpad vßs samoz°ejm∞ t∞╛ko ohromφ, ale p°edev╣φm p°i vyhledßvßnφ se ukazuje sφla regulßrnφch v²raz∙. Navφc je m∙╛ete pou╛φvat hned na dvou mφstech: jednak ve specifikaci °ßdk∙ (kde se mß pravidlo pou╛φt), jednak v parametrech vyhledßvßnφ. PokroΦilej╣φ p°φklady uvedu pozd∞ji.
Volby┌Φinek nahrazovßnφ lze ovliv≥ovat volbami, kterΘ se uvßd∞jφ za zßv∞reΦn²m lomφtkem. NejΦast∞ji pou╛φvanΘ jsou dv∞:g a c .
Volba
(oblφbenΘ vojenskΘ zaklφnadlo pro synchronizaci pochodujφcφch) by p°φkaz
ud∞lal
Teprve p°φkaz
zajistφ nahrazenφ v╣ech slov a vznikne
Abych mluvil skuteΦnou pravdu, chovßnφ vim zßvisφ na nastavenφ
parametru gdefault . Pokud je zapnut (:set gdefault ), editor implicitn∞ nahrazuje v╣echny v²skyty
°et∞zce na °ßdku. P°i pou╛itφ volby g pak bude
nahrazovat v╛dy jen prvnφ kousek na ka╛dΘm °ßdku. Vypnut² parametr (:set nogdefault ) pak zajistφ v²╣e popsanΘ chovßnφ, kterΘ je
implicitnφ pro p∙vodnφ editor vi i °adu dal╣φch program∙ systΘmu
Unix.
Druhß volba umo╛≥uje potvrzovßnφ ka╛dΘ nßhrady. Zadßte-li
vim se pokusφ nahradit v╣echny °et∞zce raz v textu, ale
ka╛d² z nich nejprve p°edvede a dotß╛e se, zda jej mß skuteΦn∞ nahradit. Tato
vlastnost je velmi u╛iteΦnß, pokud se necφtφte silnφ v kolenou a mßte jistΘ
obavy, ╛e hledanΘmu °et∞zci by mohlo vyhov∞t i n∞co navφc proti va╣emu zßm∞ru.
Svou odpov∞∩ m∙╛ete vybφrat z obvykl²ch mo╛nostφ:
Komplikovan∞j╣φ p°φkladyKdysi jsem v jednom zdrojovΘm textu pot°eboval v╣echny ΦφselnΘ ·daje vyd∞lit deseti. To vlastn∞ znamenß vyhledat v╣echna Φφsla a p°ed poslednφ Φφslici do nich vlo╛it teΦku. Zmφn∞nou akci obstarß p°φkaz
Hledß skupiny Φφslic a ty si dφky mechanismu zapamatovßnφ (kulatΘ zßvorky s
lomφtkem) rozd∞lφ v╛dy na dv∞ Φßsti. Prvnφ je dlouhß podle pot°eby a druhß
obsahuje v╛dy prßv∞ jednu (poslednφ) Φφslici. V nahrazovacφm °et∞zci jen
zopakuje tyto zapamatovanΘ skupiny, av╣ak mezi n∞ vlo╛φ teΦku.
Nedßvno jsme m∞nili strukturu domßcφch adresß°∙ u╛ivatel∙ na disku. Pro ka╛dΘho u╛ivatele obsahoval soubor informace o u╛ivatelskΘm jmΘn∞ a domßcφm adresß°i - nap°φklad
Soubor byl uspo°ßdßn abecedn∞ podle u╛ivatelsk²ch jmen. My jsme v╣ak
pot°ebovali seskupit u╛ivatele podle kateder, kterΘ se projevujφ v cest∞ k
domßcφmu adresß°i za adresß°em HOME (jako╛to p°φslu╣nφk katedry
informaΦnφch technologiφ bydlφm v adresß°i KIT ). Pot°ebovali jsme
tudφ╛ vycucnout dotyΦnΘ jmΘno adresß°e a zapsat je jako prvnφ ·daj na
°ßdku - abychom obdr╛eli
Takov² soubor pak staΦφ protßhnout standardnφm programem sort a
ΦlenovΘ jednotliv²ch kateder se rßzem ocitnou pospolu. Pot°ebnou transformaci
obstarß
P°i vyhledßvßnφ si p°φkaz zapamatuje v╣e od zaΦßtku °ßdku a╛ po °et∞zec
:HOME\ (jeliko╛ lomφtko mß specißlnφ v²znam, musφ se v hledanΘm
°et∞zci zdvojit). Pod Φφslem 2 se nßsledn∞ zapamatuje °et∞zec znak∙,
odli╣n²ch od lomφtka (jin²mi slovy cel² nßzev adresß°e a╛ po nßsledujφcφ
lomφtko). V nahrazovacφm °et∞zci se nejprve vypφ╣e tento nßzev adresß°e, za nφm
Φßrka a pak beze zm∞ny ob∞ zapamatovanΘ Φßsti textu.
© 1997, 1998 Pavel Satrapa
|