Emacs? Help! (3.část) -=-=-=-=-=-=-=-=-=-=-=- Milan Zamazal, 7. dubna 1998 Hledáme program Může se stát, že potřebujete provést nějakou akci, ale nemůžete nikde v info dokumentaci najít žádnou funkci, která by ji implementovala. To ještě neznamená, že patřičná funkce neexistuje, pouze se musíme poohlédnout někde jinde, pravděpodobně ji bude implementovat nějaký elispovský program. První, co byste měli vyzkoušet, je Finder. Vyvoláte jej příkazem C-h p, jenž vám zobrazí seznam tematických oblastí podle klíčových slov. Každá z těchto oblastí obsahuje seznam programů z distribuce Emacsu, které mají s daným tématem co společného. Pro každý takový program si můžete nechat zobrazit stručnou informaci o něm. Avšak pozor, ne všechny programy z distribuce Emacsu naleznete i ve Finderu, jejich přítomnost zde závisí na zvolených klíčových slovech. Pokud jste svůj program ve Finderu nenašli, zkuste se podívat do FAQ (C-h F). Zobrazená verze FAQ odpovídá době vypuštění vaší verze Emacsu, novější verze se občas objevují v diskusní skupině gnu.emacs.help. Po FAQ lze pohodlněji procházet po provedení C-u 2 C-x (do normálního režimu se vrátíte příkazem C-x ). FAQ by měly být nejenom zdrojem odkazů na externí programy, ale měli byste do nich nahlédnout vždy, než se budete na něco ptát svého kolegy nebo v některé diskusní skupině. Máte-li i po prozkoumání FAQ pocit, že nevíte, kde svůj program hledat, znamená to, že jste je zkoumali málo. Jednou z otázek, na které zde naleznete odpověď, je totiž "How do I find a GNU Emacs Lisp package that does XXX?". V odpovědi se dozvíte o existenci LCD (Lisp Code Directory) archívu různých elispovských prográmků. Dozvíte se také, jak tento archív ze svého počítače prohledávat pomocí LCD apropos. Nepříjemným problémem LCD archívu je to, že jenom poměrně málo autorů elispovských programů svá díla do tohoto archívu zasílá. Navíc za dobu jeho existence se v něm nakupila řada programů, které již nejsou dále udržovány a tudíž nevyužívají možností nových verzí Emacsu. Tímto nedostatkem naopak netrpí newsová skupina gnu.emacs.sources. Ta je autory různých balíků a pomůcek využívána daleko častěji než LCD archív a vyplatí se ji sledovat. Pozor, tato skupina je určena *výhradně* pro zdrojové texty a posílat do ní příspěvky neobsahující žádný užitečný elispovský kód nebo patch je obecně velmi nevhodné. Pro dotazy typu "Kde najdu XXX?" slouží skupina gnu.emacs.help. Poměrně pozoruhodný archív elispovských prográmků jsou tiny tools. Jedná se o několik megabytů kódu, který vlastnoručně napsal Jari Aalto. Vždy, když si autor potřebuje v Emacsu něco vylepšit nebo do něj něco přidat, vytvoří nebo rozšíří nějakou tiny pomůcku a umístí ji do tohoto archívu. Je tedy poměrně pravděpodobné, že zde naleznete řadu prográmků, které se vám mohou hodit. Tiny tools jsou k mání na adrese ftp://cs.uta.fi/pub/ssjaaa/. Jestliže jste program implementující hledanou funkci stále nenašli, zbývá (kromě použití webovských vyhledávacích strojů) už jen jediné -- zeptat se v newsech. Emacsu jsou věnovány zejména tyto newsové skupiny: comp.emacs: všechno možné o Emacsu gnu.emacs.help: sem byste měli primárně směrovat své emacsovské dotazy gnu.emacs.gnus: skupina věnovaná Gnus, na ty se ptejte přednostně zde a ne v \emph{gnu.emacs.help} gnu.emacs.sources: již zmíněná skupina vyhrazená pro zdrojové texty dále několik dalších diskusních skupin věnovaných například XEmacsu; nalézt je lze snadno hledáním řetězce \uv{emacs} v seznamu všech newsových skupin cz.comp.editors: česká diskusní skupina o editorech a Emacsu Většinu těchto odkazů a několik dalších informací naleznete na webové GNU stránce o Emacsu, která se nachází na adrese http://www.gnu.org/software/emacs/emacs.html. Přechod z vi Emacs samozřejmě myslí i na ty uživatele, kteří se v mládí omylem naučili (nebo byli naučeni) pracovat s editorem vi. Vzhledem k nekompatibilnímu ovládání vi si teď netroufají přejít na Emacs, protože mají obavy, že by v něm nemohli bez důkladné přípravy pracovat. Tyto obavy jsou však naprosto neopodstatněné. Emacs disponuje pětistupňovou emulací vi (zvanou Viper) od skoro vi po skoro Emacs. Ostřílení víajisté tak mají na počátku k dispozici prostředí s klávesovým ovládáním, na které jsou zvyklí, a nemusí být zbytečně mateni množstvím různých funkcí. Součástí Viperu je i info návod vysvětlující mimo jiné některé pro víajisty nezvyklé vlastnosti Emacsu. Do Viperu se dostanete spuštěním Emacsu a provedením příkazu M-x viper-mode. Zodpovíte-li několik otázek, které vám budou při prvním použití tohoto příkazu položeny, může se vám Viper příště startovat již automaticky. Přestože Viper velmi dobře umožňuje ovládat Emacs ve stylu vi, je lépe co nejdříve přejít na skutečné emacsovské ovládání. Jak jsme již nahlédli, Emacs má své standardy pro klávesové kombinace, které jsou respektovány většinou rozšiřujících programů. Používáte-li základní ovládání ve stylu vi, ztrácíte do značné míry výhody konzistentního systému klávesových kombinací a některé funkce dokonce vůbec nemusí být klávesovými zkratkami dostupné, protože mohou být předefinovány vi příkazy. To samé samozřejmě platí i pro emulace jiných editorů. O čem ještě nebyla řeč Vše, co zde bylo řečeno, není nic, co by se muselo dlouho hledat a studovat. Vše naleznete v menu Help nebo prostřednictvím příkazu C-h C-h. Nápověda Emacsu myslí i na problematiku nových verzí. Uživatelský manuál je sice s každou novou verzí Emacsu patřičně aktualizován, ale to příliš nepomůže uživatelům, kteří nechtějí znovu číst celý manuál a místo toho by rádi viděli seznam změn od poslední verze. Všechny viditelné změny ve funkcích (v Emacsu i v Elispu) jsou již dlouho odpovídajícím způsobem dokumentovány. Seznam změn v posledních verzích si zobrazíte příkazem C-h n. Seznamy změn ve starých verzích jsou pak k dispozici v adresáři .../etc/ v souborech O*NEWS. Seznam změn by měli sledovat zejména programátoři v Elispu, protože referenční příručka Elispu není updatována s každou verzí Emacsu (zatím poslední verze odpovídá Emacsu 19.34). Již zmíněný adresář .../etc/ obsahuje i jiné zajímavé informace než seznam novinek. Upozorněme zejména na referenční kartu s nejpoužívanějšími klávesovými příkazy (refcard*, pro Viper vipcard*) a soubor PROBLEMS dokumentující známé potíže, kdy něco zdánlivě nebo doopravdy nefunguje, a možnosti jejich řešení. Dále zde najdete dokumenty o free softwaru a GNU, různé dokumenty věnované GNU politice a taktéž několik spisů poněkud lehčího charakteru. Na závěr přiznejme, že se v Emacsu občas vyskytují chyby. Co udělat v případě, že narazíte na chybu? Rozhodně byste ji měli ohlásit. Nespoléhejte příliš na to, že tak učiní někdo jiný! Ohlášení chyby totiž mnohdy vyžaduje nezanedbatelné úsilí a řada uživatelů není ochotna ani tímto malým dílem přispět k vývoji svého programu. Odměnou za řádně ohlášenou chybu by vám měl být patch, který tuto chybu opraví. Před ohlášením chyby si však každopádně dobře přečtěte sekci Bugs v manuálu Emacsu. To je nutná podmínka k tomu, abyste vývojářům Emacsu byli schopni pomoci co nejlépe. Pokud víte, že se jedná o chybu elispovského souboru a který to je, podívejte se ve zdrojovém souboru na položku Maintainer v úvodním komentáři. Je-li zde uvedeno FSF, ohlašte chybu běžným způsobem. Pokud je tam naopak uvedena konkrétní osoba, pošlete oznámení o chybě se všemi náležitostmi přímo na její adresu. Závěrem Snad se podařilo ukázat, na jakých principech je dokumentační systém Emacsu vystavěn, co vše je v něm obsaženo a jakými různými způsoby jej lze využívat. Ač někteří lidé odkojení prostředími typu Visual Developer Studio pohlíží na Emacs s netajenou arogancí, nelze než konstatovat, že Emacs má i po stránce dokumentační před podobnými produkty několikaletý náskok. Nevítá vás sice po svém spuštění animacemi v barvách duhy, zmatenými kouzelníky a příběhy o zatýkání svých uživatelů, zato se vám však snaží po všech stránkách pomáhat. Proto není správné k rozsáhlému a sofistikovanému systému dokumentace Emacsu přistupovat se strachem, nýbrž je lépe si jej ochočit. Víš, který editor je nejlepší? Vim. Ano, správně. Jan Šerák Pokud se vám i po přečtení tohoto miniseriálu bude zdát, že systém nápovědy Emacsu je přeci jen příliš komplikovaný, nezoufejte. Stejně jako většina věcí v životě, i zvládnutí obsáhlé dokumentace Emacsu vyžaduje určitou praxi. Čím více budete trénovat, tím lépe si budete s dokumentačním systémem a Emacsem samotným rozumět. Nevěříte? Zkoušejte to! výheň