Linuxové noviny | Únor 1998 | ||
| |||
Emacs je oblíbeným pracovním prostředím mnoha uživatelů převážně unixových systémů. Avšak jen překvapivě málo uživatelů Emacsu je zběhlých v jedné z jeho nejsilnějších stránek - nesmírně rozsáhlém a mocném dokumentačním systému. Mnozí ani neví, co vše a jak je v Emacsu dokumentováno, jiní zase dostanou z dokumentace hrůzu poté, co poprvé shlédnou rozsah referenční příručky. Přitom vyhýbat se dokumentaci Emacsu znamená ochudit se o mnoho informací a o příjemný pocit z objevování fascinujícího. Několikadílný článek o dokumentačních schopnostech Emacsu by měl ukázat, že dokumentační systém Emacsu není nijak hrozivý a že mnohdy existuje řada cest, jak v něm žádanou informaci nalézt. Snad také některé čtenáře přesvědčí o pozoruhodnostech dokumentace Emacsu natolik, že sebe i své kolegy napříště spíše než triviálním dotazem potěší sdělením zajímavého tipu, na který narazili předchozí večer při napínavém průzkumu dokumentace. Tento miniseriál byl psán se třemi základními cíly:
Článek je psán se zřetelem na Emacs 20, většina zde uvedených faktů však platí i pro Emacs 19 a XEmacs. V prvním díle se zaměříme na příručky a dokumentace k programům jako celku.
Kromě úvodní obrazovky je na první pohled patrnou nápovědou menu. Je obecně rozšířeným omylem, že menu slouží primárně k pohodlnějšímu zadávání příkazů myší. To samozřejmě není pravda, však také u položek menu, které mají klávesový ekvivalent, odpovídající klávesovou zkratku naleznete. Ve skutečnosti je účel menu dvojí: umožnit snazší výběr z dynamického seznamu (jako je například seznam bufferů nebo odkazů na texty v kill ringu) a usnadnit uživateli orientaci ve funkcích programu. Druhý účel se vám asi zdá samozřejmý, ale přesto na něj neustále pamatujte. Až se budete pídit po nějakém příkazu, měli byste si v první řadě prohlédnout menu. To platí zejména pro komplexní programy s komplexními menu, jako jsou třeba Gnus. Může se to ovšem hodit i v banálnějších případech. Pokud například chcete porovnat dva soubory a neuspokojuje vás nepřehledný výstup programu diff, naleznete odpovídající funkci Emacsu během několika vteřin v menu (zkuste si to, při tipování správných menu nezapomínejte, že většina věcí v Emacsu je organizována přísně logicky podle pečlivě promyšlených pravidel).
Při práci s Emacsem budete nejspíše používat online (info) dokumentaci. Info je mocný hypertextově orientovaný formát a mód pro prohlížení dokumentace, který umožňuje pomocí několika jednoduchých příkazů provádět s dokumentací vše podstatné. Nebudeme zde popisovat jeho ovládání, protože vás v tomto směru Emacs vede již od úvodní obrazovky a součástí info dokumentace je i podrobný návod k ovládání info systému. Důležité je, že zobrazený online manuál je běžný emacsovský buffer, takže v něm můžete provádět obvyklé akce, jako je například vyhledávání, kopírování, vyhodnocování elispovských výrazů, apod. Uveďme několik užitečných tipů pro práci s info systémem:
Vstoupíte-li do info systému, všimnete si, že info dokumentace Emacsu sestává z několika částí. Hlavní je samozřejmě "Emacs", ale nelze opomenout ani ostatní části. Zejména je to dokumentace k samotnému info, dokumentace k podpoře editace zdrojových textů jazyků podobných C/C++ ("CC mode" - možná jste ji marně hledali v uzlu "Emacs") a dokumentace ke Gnus ("Gnus" a "Message"). Tím nechceme říci, že ostatní uzly na této úrovni neobsahují nic zajímavého, zjištění jejich obsahu však ponecháváme vaší iniciativě. Primární část ("Emacs") je velmi rozsáhlá a začátečník se v ní jen těžko orientuje. Netřeba ovšem hned zoufat. První krok by měl spočívat v pokusu o backtracking vstupem do správného uzlu hlavní úrovně a následných poduzlů, s návraty v případě omylů. Odhadnutí správného uzlu vyžaduje jistou zkušenost, avšak díky křížovým odkazům máte dobrou šanci nalézt kýžené místo i přes odkaz z jiné větve dokumentačního stromu. V případě neúspěchu můžete zkusit prohledat nejvyšší úroveň manuálu jednoduchým C-s, na tomto místě je totiž i seznam uzlů druhé úrovně. Dále můžete využít indexů. Manuál Emacsu má celkem čtyři indexy. Indexy kláves, funkcí a proměnných jsou určeny pro vyhledání již předem známých věcí, zejména samotným počítačem (viz příkazy C-h C-f a C-h C-k). Člověk obvykle sáhne po pojmovém ("concept") indexu. Užitečný může být i slovníček ("glossary"). Pokud selže i index, lze ještě před destrukcí počítače vyzkoušet konstruktivnější použití hrubé síly v podobě příkazu s. Popsaný postup lze aplikovat ve většině info manuálů. Ilustrujme si to na příkladu: Uživatel chce zjistit, jak v reply v Rmailu citovat odpověď, a dále ještě, jak místo standardního odsazení citací mezerami použít před citací dvojtečky. Vstoupí do uzlu "Emacs". Uvidí "Rmail" a vstoupí do tohoto uzlu (chybně, správné je "Sending mail"). Jde mu o reply, takže pokračuje vstupem do uzlu "Reply". V prvním odstavci nalezne křížový odkaz na "Sending mail" a projde jím. Zde text k tématu nic neříká, ale dole je menu. Po rychlém nahlédnutí do "Format" se vrací zpátky a vylučovací metodou vybere položku "Mode". Zde okamžitě vidí "Citing Mail", kde nalezne kýžené informace. Pokud by se mu to tak snadno nezdařilo, mohl by zkusit na nejvyšší úrovni uzlu Emacs vyhledat třeba řetězec "cit" (coby společnou část slov "cite" a "citing"), což nedává výsledek. Použití téhož v pojmovém indexu je však úspěšné. Nemusí tedy dojít na výraz krajního zoufalství v podobě aplikace s cit RET. Referenční příručka Emacsu je poměrně dobré čtení. Je to jedna z mála relativně jednoduchých metod, jak zjistit, jaké všechny fascinující funkce Emacs má. Zkuste si občas sednout, zvolit náhodně nějaký uzel a přečíst si jej. Možná se budete divit, kolik zajímavého najdete třeba i v uzlech typu "Basic". Na druhou stranu referenční příručka představuje jenom základní návod a neobsahuje zdaleka vše. Už přímo ve standardní distribuci Emacsu se nachází řada doplňujících prográmků (zejména hlavní módy pro editaci zdrojových kódů několika desítek programovacích jazyků), ke kterým je nutno hledat návod jinde, ale o tom si ještě povíme později.
Poslední ze zmíněných standardních Texinfo příruček k Emacsu je referenční příručka Elispu. Pozor, je číslována nezávisle na verzích Emacsu. Zatím poslední verze (2.4.2) odpovídá Emacsu 19.34 (poslední verze Emacsu 19). Od té doby vyšel Emacs 20, takže ne vše je v tomto manuálu zcela aktuální. Elisp se mění méně než uživatelská stránka Emacsu, přesto není na škodu si prohlédnout jeho změny pomocí příkazu C-h n v sekcích "Lisp changes". K významnějším změnám došlo v souvislosti se zavedením podpory multibytů v Emacsu 20, na což je potřeba při programování v Elispu brát určitý ohled. Aktuální informace ke konkrétním proměnným a funkcím lze samozřejmě získat z jejich dokumentačních řetězců.
|