- předchozí článek - následující článek - obsah - úvodní stránka - | - předchozí část - následující část - první část - |
Linuxové noviny | 08-09/98 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Vítám vás u prvního dílu seriálu o Emacsu. Chtěl bych v něm přístupnou formou naučit člověka, který nemá (zatím) v Unixu svůj oblíbený editor, jak s Emacsem žít a přežít. Nepovažuji se za nějakého emacsového guru a doufám, že právě proto by mohl být seriál srozumitelný.
Proč jsem vybral EmacsKdyž jsem před lety začal pracovat v Unixu, začal jsem hledat editor, který by splňoval moje požadavky:
Emacs oba tyto požadavky splňuje, takže jsem spokojený člověk :-).
Co se v Emacsu dá dělatJe dobré říci si hned na začátku to, co vždycky s humorem říkají Emacsoví guru, a sice, že:
Skutečně, v Emacsu můžete s velkým komfortem psát knihy v TeXu, vyvíjet a ladit programy v C/C++/Javě a spoustě jiných jazyků (Emacs si třeba pod sebou spustí gdb nebo dbx a vy na jedno stisknutí klávesy provádíte "Next", "Step", "Finish" a Emacs vám zobrazuje pěkně graficky
a sám přepíná zdrojové soubory tak, jak krokujete - prostě ráj programátora), dál můžete číst poštu a newsové skupiny (další obrázek), editovat binární soubory, počítat si daňové přiznání, vést jednoduché účetnictví, procházet se po anonymních FTP serverech stejně pohodlně jako po lokálních discích (velmi podobně jako v oblíbeném mc) a v podstatě cokoliv, na co seženete příslušný balík maker nebo na co si makra napíšete sami. Ke všem výše zmíněným věcem se dostaneme v průběhu času, jen co budeme mít za sebou úplné začátky. Za sebe ještě na úplný konec úvodu dodávám: "Buďte na svůj editor nároční", čili všechno co děláte opakovaně si zautomatizujte. V Emascu to skutečně jde.
InstalaceProtože instalace Emacsu pro danou distribuci je trochu nad rámec tohoto povídání, budu předpokládat, že používáte Red Hat 4.2 a máte nainstalovány příslušné RPM balíky s Emacsem jako já. Jsou to tyto balíky:
$ rpm -qa|grep emacs emacs-19.34-4 emacs-el-19.34-4 a jeden z balíků emacs-nox-19.34-4 emacs-X11-19.34-4 Pokud máte jinou distribuci, budete si muset příslušné instalační balíky někde iniciativně sehnat, případně popátrejte po standardních GNU FTP mirrorech a tam se dá Emacs najít i ve zdrojových souborech. Používá autoconf, takže na většině rozumných systémů vystačíte s obvyklým:
$ tar xfvz ema*tar.gz; cd ema* $ ./configure $ make ... čas na čaj - někdy i na dva {:) $ make install
Podle mých instrukcí jste zvídaví a hned předchozí zmínka o třech balících vás jistě zaskočila. Takže malé vysvětlení
Pokud chcete spouštět Emacs pouze v čistě znakovém režimu, stačí vám balík emacs-nox a obdobně jste-li zarytý "X Window-sák", nainstalujete si zřejmě emacs-X11. Rozhodně vám stačí jen jeden z nich.
/usr/bin/emacs ... 1908308 B /usr/bin/emacs-nox ... 1473692 B Rozdíl je mezi nimi (kromě velikosti) ten, že verze zkompilovaná pro X Window System používá přímo menu v horní části obrazovky, posuvnou lištu po pravé straně a při běhu některé dialogy vyskakují jako nová dialogová okna, zatímco verze -nox tyto vymoženosti nemá. Jinak funkcionalita zůstává stejná. To je vlastně jedna z hlavních myšlenek tohoto hlavního proudu tzv. GNU Emacsu a sice, že přenositelnost by měla zůstat maximální. Jen pro vysvětlení, během let vznikaly různé názorové proudy a skupiny vývojářů Emacsu se svobodně štěpily a štěpily, takže dodnes můžete najít (a případně používat) XEmacs, Lucid Emacs atd., a je jich ještě více. Jak asi správně tušíte, XEmacs se chce více integrovat do X Window Systému a zřejmě mu nevadí, že pak už nepůjde spustit na ubohé konzoli nebo přes terminálový emulátor po modemu. My se budeme věnovat pouze GNU Emacsu, tzn. tomu Emacsu, který skutečně běží všude (řádkový režim, X Window System, MS-Windows, DOS) a tím, že jste ho pustili třeba na konzoli, neztrácíte žádnou z jeho úžasných schopností. Pokud vám velikost nevadí, nainstalujte si emacs-X11. Pokud ho spustíte v X Window System např. z xtermu, naskočí vám normálně nové okno s Emacsem a ve znakovém režimu ho udržíte tak, že ho spustíte:
$ emacs -nw Jako: spusť Emacs bez okna (-nw "NoWindow"). Pak nevyskočí nové okno, ale pěkně se rozběhne spořádaně v okně, kde jste napsali tenhle řádek.
SpuštěníEmacs se dá použít běžným způsobem jako vi, joe, vim, elvis, pico apod. Postupem času dělá člověk stále více věcí přímo v Emacsu, takže správný Emacs-lover spouští Emacs jen ráno a vypíná ho až večer.
$ emacs mujprvni.txt resp. na konzoli
$ emacs -nw mujprvni.txt
Ocitli jste se ve světě Emacsu. Všechno zde má svá pravidla a přiznávám otevřeně, že to chce určité úsilí a čas zvyknout si. (PS: První dva měsíce jsou nejhorší, pak je to zase naopak úžasné). Na obrázku vidíte (v pořadí shora dolů) menu, velkou část obrazovky (pracovní oblast) sloužící pro vlastní práci, vpravo posuvnou lištu (vyzkoušejte si pravé, levé a prostřední tlačítko), v dolní části pak velmi užitečný (a samozřejmě konfigurovatelný) stavový řádek (mode-line) a úplně poslední řádek je snad nejdůležitější část a sice komunikační oblast (minibuffer), kde se odehrává velká část Vaší komunikace s Emacsem. Emacs vám tam zobrazuje různé varování, chyby, rady a zároveň tam odpovídáte jednoduché otázky apod. Když už jsme u těch otázek. Všimněte si, že u "méně důležitých" otázek vystačí s odpovědí y/n, ale u "destruktivnějších" vyžaduje pěkně vypsat yes/no - to proto, aby vás donutil uvědomit si, jestli opravdu chcete danou věc udělat. Šikovné, nemyslíte? Dívejte se tam často. Emacs vám tam často radí, co můžete dělat a jak se dočíst nápovědu. Obrázek ukazuje, jak vypadá Emacs při práci ve znakovém režimu. Přicházíte pouze o menu v horní části. To je upřímně pro začátečníky docela praktická věc, protože u položek jsou pěkně přehledně připsány klávesové sekvence, které akci vyvolají. Během několika měsíců si tak člověk ty nejčastější nenásilně zapamatuje. Takže pokud máte možnost a slušný výpočetní výkon, pouštějte si (ze začátku) raději X-ovou verzi.
Platí to, že Emacs s vámi neustále komunikuje, t.j. měli byste vidět nebo slyšet odezvu na to co děláte. Pokud se tak neděje, je to divné. V takových situacích mačkejte nejprve jednou a někdy i vícekrát po sobě C-g, což je ve všech situacích stornující kombinace kláves, která přeruší a skončí to, co jste právě dělali (a zřejmě se vám to z nějakého důvodu nedaří). Teď trochu typografické konvence. V Emacsu je hodně povelů a často se používají klávesové sekvence a to někdy s přepínači a někdy bez přepínačů. Takže
Zde si všimněte důležitého rozdílu - v posledním případě pořád držíte Ctrl stisknutý, zatímco v předposledním ho po písmenu x uvolníte. Na to si brzy zvyknete, jen je potřeba si dát ze začátku trochu pozor. Tak a teď už jsme definovali konvenci zápisu, takže teď už víte, co znamená, když vám prozradím nejnejdůležitější věc a sice - jak skončit s Emacsem - je to pomocí sekvence C-x C-c. Než se dostaneme k tomu, co která sekvence dělá, malé vysvětlení toho, proč toto asi vzniklo. Celkem jednoduchou úvahou dostáváme: Má-li program psát text, musí většina kláves po stisku vložit do textu příslušný znak. To ano, ale musíme se nějak textem pohybovat, opravovat ho a podobně. Dobrá, můžeme použít přepínač + klávesa např. C-a, C-b, až C-z nebo M-a, M-b až M-z. Jak časem uvidíte, příkazů umí Emacs na stovky, takže ani to by nestačilo, proto se používá i C-M-a až C-M-z a navíc různě dlouhé sekvence po prefixech C-x a C-c. A všechny tyto sekvence jsou vámi modifikovatelné. Čili ad absurdum po spuštění Emacsu jenom Vy můžete vědět, co jste si posledně přiřadil za akci třeba s sekvenci C-c v v d r. No, to už je opravdu trochu zvrhlé...
Řekněme si typickou konfiguraci. Po instalaci máte (poměrně) rozumné vazby nadefinovány a měnit budete jen to, co vám bude opakovaně vadit a hlavní, co budete dělat je, že si budete přidávat svoje nové vazby (bindings). Budu se snažit psát do závorek anglické ekvivalenty proto, abyste měli lepší vazbu na to, o čem se píše v dokumentaci. (Do ní budete muset dříve či později stejně vklouznout, protože tento seriál vám nemůže objasnit vše. Jen pro zajímavost, úplná referenční příručka Emacsu má něco kolem 600 stran - taková bible Emacsu). Takže ještě jednou, pokud řeknu, že C-x C-s uloží soubor, který právě editujte, znamená to přesně to, že ve standardní distribuci Emacsu po prvním rozběhnutí je na sekvenci C-x C-s přivázána funkce "ulož soubor". Pokud jste něco měnili, je to na vás. Čili opatrně na změny, které děláte v konfiguraci Emacsu. Z 90% se pak člověk rozčiluje neprávem na Emacs, spíše by měl spílat sám sobě. (Mluvím z vlastní zkušenosti.) Všechny takovéto úpravy si člověk typicky přidává do svého souboru /.emacs, takže pokud byste si ho nějak pokazili, jednoduchá pomoc - smažte ho a Emacs se rozběhne v defaultní konfiguraci, jak byl sestaven. Protože Emacs je určen po práci v mnoha různých podmínkách, není zvyklý se na cokoliv vázat. V podstatě jakákoliv klávesnice bude dobrá. I když třeba nebude mít F1 až F12 nebo klávesu Alt a podobně. To neznamená, že nemáte používat klávesy End, Home, PgUp, PgDn, F1 až F12, Ins a Del. Většina z nich funguje, jak je obvyklé, a těm ostatním to vysvětlíme v některém z příštích dílů. Je dokonce velmi pravděpodobné, že vám teď hned třeba např. Del nebude dělat to, co má - to je nejčastější problém, ale na všechno se podíváme a v tabulce vidíte, že Del má ekvivalent C-d, takže se tak moc neděje... Nyní si zkuste napsat nějaký odstavec textu a vyzkoušejte si editování. Není to tak hrozné, co? Zkuste si jako samostatné cvičení "oeditovat" několik souborů. - To by bylo pro dnešek vše. Pokračování příště. Pokud vám bylo něco nejasné nebo máte nápad, co byste se chtěli dočíst o Emacsu příště, napište mi. |
- předchozí část - následující část - první část - | - předchozí článek - následující článek - obsah - úvodní stránka - |