- 1 - R I A D K O V Y E D I T O R ED ---------------------------------- Textove editory UNIXu pracuju s textovymi subormi, vytvaraju ich, vyhladavaju a zobrazuju ich casti, prevadzaju pozadovane zmeny. Su zakladom pre pracu s textom, ci uz ide o zdrojovy programu, subory dat pre spracovanie triediacimi a inymi programami alebo textove dokumenty. Editor ED je zakladnym textovym editorom, pracujucim pod OS UNIX v. 4.3 BSD. 1. STARTOVANIE EDITORA ------------------- - vykonat sa moze dvoma sposobmi: a) ed napr.: ed katalog V tomto pripade sa hladany subor z disku (prip. ineho media) zapise do pracovnej oblasti (buffra), v ktorej bude so suborom pracovat. b) ed e cize napr.: ed e katalog Kedze prikaz ed je bez argumentu, pracovna oblast zostane prazdna a zaplni sa az po prikaze e, ktory uz argument ma (prikaz e nacita obsah suboru 'katalog' do PO). Ak po horeuvedenom zadani suboru terminal vypise ?, pracujte dalej, meno suboru sa registruje!! c) ed nasleduje obsah suboru, sa zapise na konci s prikazom w w 2. VKLADANIE TEXTU --------------- Po odstartovani editora mozme vkladat text a to prikazmi a (append) - novy text vklada ZA sucasny riadok i (insert) - text pise PRED sucasny riadok. Vkladany text musi byt ukonceny . (bodkou) na novom riadku a . Ak sa ma napisany text uchovat v subore, umozni to prikaz w (write), ktory zapisujeme v nasledujucom riadku po . , cim je zabezpeceny zapis suboru na disk. !!! Pri pisani dlhsich textov alebo pri vykonavani roznych jeho zmien, pouzivajte prikaz w priebezne, cim zabezpecite vcasny zapis suboru na disk. Usetrite si tak pracu pri pripadnej poruche pocitaca ci vypadku energie!!! Nastavene meno suboru sa da zistit prikazom f. Prikaz r (read) nacita obsah zadaneho suboru a pripoji ho za posledny riadok editovaneho suboru, prip. za riadok dany cislom pred r. Nemeni pritom meno nastaveneho suboru. Priklad: ed katalog . . 15r text - za 15. riadok suboru katalog nacita obsah suboru text. Editacia (praca s editorom) konci prikazom q. - 2 - Ak prevedene zmeny neboli zaznamenane na disk prikazom w, editor odpoveda ?, cim upozornuje uzivatela, ze pri odchode z editora nebudu zaznamenane ziadne zmeny od zadania posledneho prikazu w alebo od startu editora (ak prikaz w nebol vobec pouzity). POZOR ! Prikaz Q automaticky, bez predoslej vyzvy, ukoncuje editaciu. 3. ADRESOVANIE RIADKU ------------------ Editor ED je riadkovo orientovany editor, takze editovany subor je pristupny po riadkoch. Riadky su cislovane prirodzenymi cislami (1,2,3,....). Prechod na urcity riadok sa uskutocni zadanim jeho cisla. Riadok, na ktorom editor pracuje, sa nazyva sucasny riadok alebo prave adresovany riadok a ma oznacenie . (bodka). Cislo sucasneho riadku zistime prikazom .= pricom = vypisuje cislo sucasneho riadku. Na vypis sucasneho riadku na obrazovku sa pouziva prikaz .p (p - print). Adresovat je mozne vsetky prikazy bud zadanim cisla riadku alebo vymedzenim useku textu dvoma riadkami. Adresovat riadok je mozne tiez kontextovo urcenim textoveho retazca v hladanom riadku. Editor po najdeni vypisuje obsah riadku a nastavi ho ako sucasny. Hladany textovy retazec sa zapisuje /retazec/ // - opakovane hladanie daneho retazca. Smer prehladavania zmenime zapisom ?retazec? ?? - opakovane hladanie daneho retazca. Usek je vymedzeny zaciatocnym a koncovym riadkom (x,y), napr.: x,y - usek od x po y. pripadne mozme vypisat usek textu od 'retazec1' po 'retazec2' prikazom: /retazec1/,/retazec2/p Ak pri vyhladavani riadku uvedieme znamienko, znamena to poziciu vzhladom k sucasnemu riadku (relativne adresovanie), napr.: -5 <=> .-5 (piaty riadok pred sucasnym). +5 <=> .+5 (piaty riadok za sucasnym). 4. ZMENY TEXTU ----------- Vymazanie riadku alebo textu je mozne prikazom d (delete): 2d - vymaze 2. riadok 1,5d - vymaze usek vymedzeny 1. a 5. riadkom Zamenit text v danom riadku za iny umoznuje prikaz c (change): 3c - zmeni 3. riadok za text, ktory je napisany v nasledujucich riadkoch a je ukonceny bodkou; podobne ako prikazy a al. i. Na zmenu textoveho retazca za iny sa pouziva prikaz s (substitute), pricom mozeme prikaz adresovat, napr.: 4s/povodny/novy/ Je to jediny prikaz, ktory umoznuje zmeny v riadku na urovni znakov. Prikaz u (undelete) vracia stav pred poslednou substituciou, plati vsak len pre jednu substituciu. Prikaz U obnovi cely riadok bez ohladu na pocet zmien v nom vykonanych. Na premiestnenie urcitej casti textu za riadok, ktory adresujeme, pouziva sa prikaz m (move): 1m3 - prvy riadok premiestni za treti Podobnu ulohu ma prikaz t, ktori vsak oznacenu cast len skopiruje za urceny riadok: 1,2t$p - skopiruje prve dva riadky za posledny a vypise ich - 3 - 5. GLOBALNE PRIKAZY ---------------- Globalne prikazy rozsiruju platnost vsetkych prikazov na sucasny riadok alebo na cely usek textu. Najpouzivanejsim je prikaz g, ktory rozsiruje platnost prikazu, na ktory je aplikovany: 1,$s/ano/nie/gp Na rozdiel od prikazu s, ktory substituciu vykona len pre prvy vyskyt daneho retazca, prikaz s v kombinacii s prikazom g zameni vsetky najdene vyskyty v danom riadku alebo vymedzenom useku. Vypis kazdeho riadku, ktory obsahuje 'retazec ' ziskame prikazom: g/retazec/p 6. OSTATNE PRIKAZY --------------- V riadku aa bb cc dd ee chceme oddelit 'cc dd ee' tak, aby bolo zapisane na novom riadku. Toto rozdelenie zapiseme prikazom: s/cc/\ cc/p Naopak, prikaz j (join) spaja vyznacene riadky do jedneho: 7,9j .,.+2jp - spoji sucasny riadok a dva riadky za nim, a vypise ich Moze sa stat, ze uzivatel, ktory pracuje v editore ED, potrebuje dopisat textovy retazec na urcity riadok. Pomoze si opat prikazom substitute, a to: s/$/text. retazec/ Pri praci s editorom je niekedy potrebne 'odskocit' do SHELLu. Vtedy pouzijeme zapis ! Ukoncenie cinnosti v SHELLe terminal oznamuje vykricnikom na novom riadku. - 4 - ZAKLADNE PRIKAZY PRE PRACU S TEXTOVYM EDITOROM ED POD OS UNIX V 4.3 BSD. -------------------------------------------------------------------------------- STARTOVANIE EDITORA: ed ed UKONCENIE PRACE S EDITOROM: - bez zapisu vykonanych zmien do suboru ------------------------------------- q -(v pripade, ze ste v subore vykonali zmeny, ED sa (?) opyta, ci vykonane zmeny chcete zapisat do suboru, nasledujuce q definitivne konci editaciu). - so zapisom vykonanych zmien do suboru ------------------------------------- w - v pripade, ze ste zadali meno edit. suboru bud pri starte ed alebo prikazom editora e . w - ak meno suboru nebolo zadane na zaciatku. | Pre kazdy prikaz editora ED plati, ze pred nim moze byt uvedene cislo riadku | | alebo cisla dvoch riadkov oddelenych ciarkou, ktore adresuju riadok (usek), | | s ktorym prikaz pracuje. | | V pripade, ze nie je uvedene, prikaz pracuje so sucasne adresovanym riadkom | | (jeho cislo ziskate prikazom .= ). | ADRESOVANIE: .= - zobrazi cislo sucasneho riadku $= - zobrazi cislo posledneho riadku p - editor 'skoci' na a zobrazi ho (explicitna adresacia riadku ) PREZERANIE: ,p - zobrazi sa vyznaceny usek - zobrazi nasledujuci riadok VKLADANIE RIADKOV: a - umozni pridat text ZA prave adresovany riadok. Na ukoncenie vkladania je potrebne napisat na novy riadok bodku a . i - pracuje podobne ako prikaz a s tym rozdielom, ze vklada text PRED adresovany riadok. VYMAZANIE RIADKOV: d - vymaze riadky specifikovane pred prikazom d, implicitne prave adresovany riadok. ZMENY RIADKOV: c - umozni zmenit riadky (specifikovane pred prikazom c) za nove, ktore sa vkladaju rovnakym sposobom ako v prikaze a. m - premiestni riadky adresovane pred prikazom m za riadok specifikovany po prikaze m. t - pracuje ako prikaz m, avsak riadky kopiruje. ZMENY NA UROVNI RIADKU V RIADKOCH: s/// - zameni za v riadkoch adresovanych pred prikazom s. Meni len prvy vyskyt retazca v riadku. Na zmenu vsetkych retazcov v riadku je potrebne pouzit prikaz s spolu s prikazom g v tvare s///g. - 5 - KONTEXTOVE VYHLADAVANIE: // - vyhlada prvy vyskyt retazca od prave adresovaneho riadku smerom ku koncu suboru az po adresovany riadok (na vyhladanie vsetkych pouzi prikaz g v tvare: g//p ?? - rovnako ako predchadzajuci prikaz, ale hladanie vyskytu retazca prebieha smerom k zaciatku suboru. // alebo ?? - zopakuj posledne vyhladavanie. PRIKAZY PRE PRACU SO SUBOROM: f - vypise meno prave editovaneho suboru. e - naplni buffer suborom , predchadzajuci obsah buffra (ak nejaky bol) sa vymaze. r - nacita subor za posledny riadok prave editovaneho suboru (prida sa na koniec suboru). SPECIALNE PRIKAZY: ! - umoznuje zadat lubovolny prikaz SHELLu priamo v editore ED ( prikazom !sh sa dostaneme do noveho SHELLu a D nas zavedie naspat do editora). u - umozni obnovit stav pred poslednou zmenou v subore. U - umozni obnovit posledny zmeneny riadok. !!!! UPOZORNENIE !!!! Pretoze pri praci s editorom ED pracujete iba s kopiou svojho suboru ulozenou v buffri (usek pamati pocitaca), pouzivajte pravidelne prikaz w, ktory ulozi vsetky zmeny vykonane pri editovani na disk. Vyhnete sa tak strate svojej prace pri pripadnej poruche pocitaca. .