Hlavní navigace

Ed - textový editor do nepohody

20. 9. 2002
Doba čtení: 4 minuty

Sdílet

Potřeba editovat textové soubory je v Unixu větší než kde jinde. Nástrojů, které toto umožňují, je celá řada. Představíme si jeden z nich.

Většina z vás asi nejspíš zná některý z klasických editorů, jako jsou vi, pico nebo joe. Do této kategorie však patří také editor Ed, který možná není až tak známý, je ale určitě přinejmenším stejně rozšířený jako jeho sourozenci. Jako ostatní, umí Ed samozřejmě editovat textové soubory. Tím však veškerá podobnost s výše zmíněnými končí. Ed je totiž řádkový editor. Takže zapomeňte na celoobrazovkové výpisy, chybové hlášky, pohyb po dokumentu pomocí kurzorových kláves. Nic takového Ed neumí. Teď si určitě řeknete: „No moment, jak to teda může fungovat ?“. Odpověď zní: „Naprosto elegantně a jednoduše.“ Celá editace se totiž provádí pěkně na jednom, jediném řádku. Jak jeho autor sám napsal, napadlo ho vytvořit textový editor poté, co zjistil, že vi a emacs jsou na jeho lince o rychlosti 110 baudů (bitů za sekundu) neúnosně pomalé a tudíž nepoužitelné. Přál si editor, který by nepotřeboval ke své práci celou plochu monitoru, ale naopak ji co nejvíce šetřil. No, a protože nic takového neexistovalo, tak si to napsal.

Protože tedy nejdůležitější vlastností nového editoru byla šetrnost k pomalým linkám, nevypisuje Ed žádné hlášky. Tedy ani OK při provedení příkazu. Přesto je práce s ním velmi jednoduchá a intuitivní.

Začínáme

Ed se překvapivě spouští příkazem „ed“. Jako parametr mu můžeme vložit název souboru, se kterým budeme pracovat. Ten musí existovat, Ed neumí založit nový soubor. Pokud soubor existuje, okamžitě se dozvíme jeho velikost v bytech. Hned na začátku by bylo dobré si říct, jak se Ed ukončuje. Ono se to nezdá, ale je to mnohem větší problém, než ho spustit. Schválně si to zkuste … no dobře, já vás nebudu napínat, Ed se ukončuje napsáním velkého písmene Q a potvrzením. Potom, co editor spustíme, jsme se ocitli v takzvaném příkazovém režimu. Můžeme mu tedy zadat několik zajímavých příkazů, tak předně je to příkaz k ukončení editace. Další důležitou operací je načtení souboru do paměti. To se provádí příkazem „e nazev_souboru“. Důležité upozornění: Veškerá práce se provádí pouze v paměti, s kopií původního souboru. Pokud tedy změny zapomenete uložit, přijdete o ně. Uložení provedeme příkazem w, jako write. Opět se dozvíme velikost souboru v bytech.

Editujeme

Teď přijde nejdůležitější část práce, a tou je samotný zápis do souboru. Do tzv. editačního režimu se přepneme tak, že jednoduše zadáme příkaz a (append=přidávat), který zajistí začátek editace, a to za aktuální řádek. Pokud chceme psát před aktuální řádek, využijeme příkazu i (insert=vložit). V tuto chvíli se stane vše, co napíšeme, součástí editovaného dokumentu. Editaci ukončíme tak, že na samostatný řádek napíšeme tečku a stiskneme enter. Vidíte, že Ed navypisuje žádná hlášení. Takže základní práci jsme probrali a mohli bychom skončit. Ale kdepak, teď to teprve začne. Příkazový režim je velmi mocný i s tím málem příkazů.

Další kouzla příkazového řádku

Důležitou informací, kterou jsem vám zatím zatajil, je, že Ed si každý řádek v souboru očísluje vzestupně od jedničky. Aktuální řádek se označuje tečkou a poslední řádek znakem $. Jejich čísla zjistíme tak, že napíšeme .= nebo $= . Pomocí čísel řádků jsme schopni se po dokumentu jasně a přesně pohybovat. A to jednoduše tím způsobem, že v příkazovém režimu přímo napíšeme číslo řádku, který chceme určit jako aktivní, tj. že s ním teď chceme pracovat. Ed nám tento řádek pro kontrolu vypíše. Můžeme také využívat znamének plus a mínus k relativnímu posunu po dokumentu. +3 nás například přesune o tři řádky dále.

Všechny Edovy příkazy lze s čísly řádků kombinovat. Pokud například chceme zapsat něco pod řádek šest, řekneme Edovi „6a“. Dalším často používaným příkazem je d (delete), který smaže aktuální řádek. Opět jej můžeme spojit s číslem řádku, například 34d smaže řádek 34. Pokud chceme vybrat více naž jeden řádek, můžeme použít číselný rozsah, který způsobí, že se příkaz rozšíří na všechny zadané řádky. Rozsah zadáme pomocí čárky. Kdybychom chtěli smazat řádky 23–62, napíšeme příkaz 23,62d .

Příkazem, který se Vám bude také často hodit, je p (print), který vypíše aktuální řádek, nebo řádky. Teď si Vás vyzkouším. Co se stane, když Edíkovi řekneme „1,$p“. No?? Správně, vypíše nám celý dokument. Hodně častým úkolem editoru je také vyhledávání řetězců. To se v Edu provádí vložením řetězce mezi dvě lomítka, takže, chceme-li vyhledat slovo Pepa, napíšeme jednoduše /Pepa/ a Ed změní aktuální řádek za první, ve kterém narazí na zadaný řetězec. Pokud nejsme spokojeni a chceme v hledání pokračovat, napíšeme // a Ed vyhledá další výskyt řetězce. Samozřejmě lze hledání opět zkombinovat s předešlým. Tak například /Ahoj/,/Pepa/d smaže řádky, ve kterých se vyskytují obě slova včetně řádků, které jsou mezi nimi. No, není to krása ??

Samozřejmě můžeme řetězce kopírovat (příkaz t, 1t4, zkopíruje řádek 1 za řádek 4), přesouvat (m, ovládá se stejně jako kopírování). Poslední příkaz, který si ukážeme, je označen vykřičníkem a lze pomocí něj spustit příkaz shellu (např. !ll).

root_podpora

Závěr

Ed je velmi pěkný a jednoduchý editorek, který umožňuje práci na velmi pomalých linkách (radioamatéři na paket rádiu vědí, o čem mluvím, pro něj je ed jako stvořený), ale lze jej také využít při tvorbě záchranným disket, protože je mnohem menší než jakýkoliv jiný editor. Další jeho nespornou výhodou je, že je svými příkazy podobný již zmiňovanému editoru vi, a v neposlední řadě také skutečnost, že jej lze nalézt ve všech unixových systémech, které si jen lze představit. Doufám, že jste si jej oblíbili stejně jako já.

Byl pro vás článek přínosný?

Autor článku

Petr Krčmář pracuje jako šéfredaktor serveru Root.cz. Studoval počítače a média, takže je rozpolcen mezi dva obory. Snaží se dělat obojí, jak nejlépe umí.