Obsah
1. Základy použití režimu org-mode v Emacsu
2. Struktura dokumentů používaných v org-mode
3. Nadpisy, seznamy, tabulky, odkazy
4. Klávesové zkratky pro změnu pohledu na dokument
7. Zaškrtávací políčka (checkboxy)
8. Základní statistika pro seznamy se zaškrtávacími políčky
10. Základní operace s tabulkami
11. Výpočty aneb Emacs ve funkci tabulkového procesoru
12. Adresování buněk v tabulce
13. Zobrazení adres sloupců a řádků
14. Přesuny celých sloupců nebo řádků
16. Export dokumentů do dalších formátů
17. Převod diáře na HTML stránku
19. Seznam dnes popsaných příkazů režimu org-mode
1. Základy použití režimu org-mode v Emacsu
Minulý týden jsme se na stránkách Roota seznámili s modulem nazvaným vim-orgmode, který umožňuje práci s kalendářem, diářem, poznámkami ale i se složitějšími strukturovanými dokumenty přímo v textovém editoru Vim. Možnosti nabízené tímto pluginem i struktura souborů (dokumentů) je přitom inspirována slavným modulem org-mode, který je nabízený pro neméně slavný textový editor Emacs. A jak jsme se již zmínili minule, je pro některé uživatele již samotná existence org-mode dokonce tou hlavní motivací pro použití Emacsu (a zdaleka se nejedná pouze o programátory). Dnes se seznámíme se základními vlastnostmi tohoto režimu, ovšem již nyní je zapotřebí upozornit na to, že možnosti nabízené pluginem org-mode jsou mnohem větší, takže na tento článek navážou další texty.
Obrázek 1: Dokument s poznámkami, se kterým jsme se již setkali při popisu režimu vim-orgmode. Povšimněte si použití různých úrovní nadpisů, použití číslovaných seznamů i seznamů s odrážkami a použití textových značek určených pro změnu stylu zobrazení písma.
V případě, že nemáte plugin org-mode v Emacsu nainstalován, postupuje se při jeho instalaci naprosto stejným způsobem, jako při instalaci jiných knihoven pro Emacs. Příkazem:
M-x list-packages
Obrázek 2: Seznam dostupných balíčků, z něhož je patrné, že kromě samotného org-mode lze nainstalovat i další zajímavé pluginy, které tento režim rozšiřují.
se vypíšou všechny balíčky, které je možné do Emacsu nainstalovat. Posléze se balíček vybere klávesou Enter a provede se jeho instalace po výběru příkazu Install. Samozřejmě je možné použít i přímý způsob:
M-x package-install [Return] org [Return]
Obrázek 3: Modul zajišťující lepší kooperaci mezi režimy org-mode a evil-mode.
2. Struktura dokumentů používaných v org-mode
Na rozdíl od specializovaných aplikací určených pro organizaci času a správu poznámek pracuje plugin org-mode s čistě textovými soubory, v nichž se rozeznává několik textových značek, které je možné se velmi snadno naučit. Ostatně se stejným nebo hodně podobným principem, tj. s použitím běžných textových souborů s několika značkami, se pravděpodobně setkalo hodně čtenářů tohoto článku: jedná se zejména o dnes populární formáty AsciiDoc, Markdown, ReStructuredText a podmnožiny těchto jazyků, které jsou použity například na GitHubu, některých systémech s wiki apod. Ostatně i samotný formát používaný org modem je podporován přímo na GitHubu – soubory tohoto typu jsou automaticky zformátovány před jejich zobrazením uživateli (v případě potřeby se lze ovšem podívat i na „raw“ podobu takových dokumentů).
Obrázek 4: Režim org-mode samozřejmě dává uživatelům k dispozici rozsáhlou nápovědu integrovanou do Emacsu.
Všechny nové příkazy (je jich několik set, pokud spočítáme všechny možné varianty!), které plugin org-mode nabízí, tak pracují nad čistě textovými daty, přičemž je nutné zdůraznit, že plugin nemá k dispozici žádné další „skryté“ soubory. V praxi to znamená především fakt, že si můžete poznámky a diář jednoduše synchronizovat mezi různými počítači (přes Git popř. dokonce i přes starý dobrý nástroj rsync) a prakticky nikdy nedojde k poškození dat (pokud si je samozřejmě sami nesmažete nebo „nerozházíte“ některou pokročilejší operací).
Obrázek 5: Základní klávesové zkratky dostupné uživatelům jsou samozřejmě vypsány v integrované nápovědě, podobně jako další informace o org-mode.
3. Nadpisy, seznamy, tabulky, odkazy
Pomocí textových značek se v org-mode rozlišuje několik různých tříd objektů. Jedná se především o nadpisy, které začínají hvězdičkami na začátku řádku. Podle počtu hvězdiček se rozlišují úrovně nadpisů – nadpisy nejvyšší úrovně jsou označeny jedinou hvězdičkou, nadpisy druhé úrovně dvěma hvězdičkami atd. Nadpisy jsou od ostatního textu vizuálně rozlišeny, to ovšem není jejich hlavní funkce. Nadpisy především slouží ke strukturování dokumentu a existuje několik příkazů pro změnu pohledu na dokument (viz navazující kapitolu), změnu jeho struktury apod. Nesmíme zapomenout ani na možnost exportu dokumentů do jiných formátů (PDF, HTML, LaTeX, …), v nichž samozřejmě struktura dokumentů hraje velkou roli.
Obrázek 6: Pro org-mode existuje i spousta zajímavých rozšíření, například toto rozšíření pro kooperaci s Jirou.
Mezi další třídu textových objektů poskytovaných modulem org-mode patří seznamy, které mohou být číslované nebo se může jednat o seznamy s odrážkami. U obou typů seznamů je možné do jisté míry ovlivnit styl zobrazení značek a kdykoli tento styl změnit (pro celý seznam!) s využitím k tomu určených příkazů. Třetí třídou textových objektů jsou odkazy, které mohou vést jak do stejného textového dokumentu, tak i do dokumentu jiného, na URL apod. A důležitá je i podpora tabulek, které tvoří nejkomplexnější textové objekty. S některými možnostmi, které se týkají práce s tabulkami, se setkáme v sedmé kapitole.
Obrázek 7: Možnosti exportu diáře/poznámek do různých formátů.
4. Klávesové zkratky pro změnu pohledu na dokument
Textové dokumenty spravované pluginem org-mode je možné editovat s využitím všech běžných editačních příkazů Emacsu. Dokonce je možné použít i režim evil-mode, s nímž jsme se seznámili v článku „evil“ režim s poměrně dobrou emulací Vimu a s nímž org-mode relativně dobře kooperuje (s některými rozdíly se seznámíme příště). Některé nové funkce jsou navázány na klávesu TAB, jejíž význam se mění podle toho, na kterém textovém objektu se nachází kurzor. Tato klávesa především slouží pro změnu viditelnosti jednotlivých struktur dokumentu. Je totiž možné, aby byly zobrazeny jen nadpisy nejvyšší úrovně, text na prvních dvou úrovních atd. Podívejme se nyní na základní příkazy pro změnu viditelnosti jednotlivých částí dokumentů. Příkazy se typicky zadávají ve chvíli, kdy se textový kurzor nachází na nějakém nadpisu:
Klávesa | Význam klávesy (příkazu) |
---|---|
TAB | změna viditelnosti konkrétního vybraného podstromu (postupně se rotuje mezi různými úrovněmi) |
S-TAB | změna viditelnosti obsahu celého bufferu (dokumentu) |
C-u C-u TAB | výchozí nastavení viditelnosti |
C-u C-u C-u TAB | zobrazení obsahu celého souboru, tj. celé jeho struktury |
Změna viditelnosti se na editovaném dokumentu projeví následujícím způsobem:
Obrázek 8: V dokumentu jsou zobrazeny pouze hlavní nadpisy (FOLDED).
Obrázek 9: Změna viditelnosti stiskem klávesy TAB (CHILDRED).
Obrázek 10: Po dalším stisku TABu se zobrazí celý dokument (SUBTREE).
5. Tvorba seznamů
Při tvorbě poznámek a strukturovaných dokumentů je samozřejmě možné používat seznamy. Jak jsme se již dozvěděli v předchozích kapitolách, pracovat lze s číslovanými seznamy i se seznamy s odrážkami. Číslované seznamy typicky začínají celým číslem, za nímž následuje tečka nebo pravá kulatá závorka. Odrážky jsou reprezentovány znaky „-“, „+“ nebo „*“. Mezi těmito pěti možnostmi se můžete přepínat pomocí klávesové zkratky C-c -. Tato zkratka je aplikována vždy na aktuální seznam, tj. na seznam, v němž se nachází textový kurzor. Jakýkoli prvek seznamu je možné převést na nadpis pomocí zkratky C-c *, nový prvek se přidává klávesovou zkratkou M-RETURN a poslední zajímavou volbou je C-c | pro převod seznamu na tabulku.
Obrázek 11: Číslované seznamy.
Příkazy pro práci se seznamy:
Klávesa | Význam |
---|---|
M-RET | přidání dalšího prvku do (ne)číslovaného seznamu |
C-c – | postupná změna typu prvku (číslovaný seznam atd.) |
C-c ^ | seřazení seznamu |
C-c * | převedení aktivního prvku na nadpis |
C-c | | převod seznamu (i jiného bloku) na tabulku |
Obrázek 12: Změna číslování seznamu klávesovou zkratkou C-c -.
6. Další operace se seznamy
Mezi další operace se seznamy patří klávesové zkratky M-šipka nahoru a M-šipka dolů. Tyto zkratky slouží pro přesun prvku (na kterém se nachází textový kurzor) ve směru stisknuté šipky. Tyto dva užitečné příkazy jsou vypsány v následující tabulce:
Klávesa | Význam |
---|---|
M-šipka nahoru | přesun prvku v rámci seznamu nahoru |
M-šipka dolů | přesun prvku v rámci seznamu dolů |
Obrázek 13: Změna číslovaného seznamu na seznam s odrážkami.
Obrázek 14: Změna stylu seznamu s odrážkami.
Obrázek 15: Změna stylu seznamu s odrážkami.
V některých případech může být užitečné seřadit všechny prvky nějakého seznamu. Může se například jednat o seznam lidí, kterým je zapotřebí poslat nějakou informaci apod. I pro tuto operaci (samozřejmě) nalezneme v režimu org-mode příkaz. Ten je vyvoláván klávesovou zkratkou C-c ^. Po zadání této klávesové zkratky se Emacs zeptá, jakou metodou mají být položky seznamu seřazeny:
Obrázek 16: Seznam před seřazením. Povšimněte si, že se Emacs ptá, jakým způsobem se má seznam seřadit.
Rozlišuje se mezi abecedním řazením, řazením podle čísel, času nebo podle zatržení položky (checked/unchecked). Samozřejmě je podporováno i seřazení v opačném směru, čehož využijeme zejména ve chvíli, kdy se položky seznamu mají seřadit podle časových značek.
Obrázek 17: Seznam po seřazení.
Obrázek 18: Seřazení seznamu v opačném směru.
7. Zaškrtávací políčka (checkboxy)
Zaškrtávací políčka jsou dalším specializovaným typem seznamů. Do dokumentu se zapisují velmi jednoduchým a snadno zapamatovatelným způsobem:
*** Checkboxy - [ ] první - [ ] druhý - [ ] třetí
V případě, že je zapotřebí políčko „odškrtnout“, postačuje kdekoli na řádku použít příkaz C-c C-c. Druhý zápis příkazu C-c C-c zatržení opět zruší:
*** Checkboxy - [X] první - [X] druhý - [ ] třetí
Poznámka: zajímavé je, že není možné jednoduše vybrat několik zaškrtávacích políček a označit/odznačit je v jedné skupině zkratkou C-c C-c. Pokud potřebujete pracovat s více vybranými políčky, použijte raději zkratku C-c C-x C-b.
8. Základní statistika pro seznamy se zaškrtávacími políčky
V případě, že do nadpisu umístěného nad zaškrtávacími políčky vložíte speciální textovou značku [%], bude možné poloautomaticky zjišťovat, kolik úkolů již bylo splněno. V tomto případě zaškrtnuté políčko odpovídá splnění úkolu a nezaškrtnuté úkolu, který je nutné ještě dokončit:
*** Checkboxy [%] - [X] první - [X] druhý - [ ] třetí
Ve chvíli, kdy se kurzor nachází v oblasti se zaškrtávacími políčky, lze použít klávesovou zkratku C-c #, která provede automatický přepočet hotových úkolů. Výsledek může vypadat například následovně:
*** Checkboxy [66%] - [ ] první - [X] druhý - [X] třetí
Ovšem můžeme použít i jiné speciální textové pole (či textový objekt) zapisovaný stylem [/]:
*** Checkboxy [/] - [X] první - [X] druhý - [ ] třetí
Po stisku stejné klávesové zkratky, tedy C-c # se opět provede přepočet, ovšem namísto procent hotových úkolů se zobrazí zlomek hotové-úkoly/všechny-úkoly. Výsledek může vypadat následovně:
*** Checkboxy [2/3] - [ ] první - [X] druhý - [X] třetí
9. Jednoduché tabulky
Jednou z velmi důležitých vlastností pluginu org-mode je podpora pro práci s tabulkami. Díky tomu může Emacs pro některé účely nahradit i nástroje určené pro mnohem složitější operace s tabulkami (LibreOffice, …). Samozřejmě je stále zachován základní princip, který se celým org-mode prolíná: všechna data jsou reprezentována čistým textem bez speciálních datových struktur a řídicích znaků. Pouze se (v čitelné podobě) za tabulku mohou přidávat informace o vzorcích, což je téma, kterému se budeme věnovat v navazujících kapitolách.
Obrázek 19: Tabulka, v níž jsou po editaci rozházené buňky.
Obrázek 20: Po stisku klávesy TAB se tabulka automaticky znovu zformátuje.
10. Základní operace s tabulkami
Zajímavá je funkce pro automatické doplnění horizontálního oddělovače do tabulky. V případě, že na začátku nového řádku napíšete pouze dva znaky:
|-
dojde k automatickému doplnění celého řádku tabulky, který bude obsahovat pouze znaky „-“ s horizontálními oddělovači. Samozřejmě si chování tohoto příkazu opět ukážeme na sérii screenshotů:
Obrázek 21: Záhlaví tabulky.
Obrázek 22: Zápis prefixu „|-“.
Obrázek 23: Po stisku klávesy TAB se automaticky doplní horizontální oddělovací řádek.
Obrázek 24: Řádky a buňky na nich se postupně doplňují, po zápisu hodnoty opět postačuje stisknout klávesu TAB (ta vytvoří buňku v novém sloupci nebo na novém řádku).
11. Výpočty aneb Emacs ve funkci tabulkového procesoru
Plugin org-mode v Emacsu dokonce dokáže provádět základní výpočty s hodnotami, které jsou uloženy v tabulkách. Podobně, jako je tomu i u běžných tabulkových procesorů, je nutné i v Emacsu nějakým způsobem reprezentovat vzorce ve dvou variantách: v původní podobě (samotný vzorec napsaný uživatelem) a v podobě výsledku výpočtu (automaticky či poloautomaticky vypočtená hodnota). Emacs si v tomto případě musí pomoci malým trikem, kdy jsou vlastní vzorce uloženy pod tabulkou (ve speciálně naformátovaném komentáři) a výsledky výpočtu jsou uživateli prezentovány přímo v tabulce tak, jak to očekává. Nutno poznamenat, že přepočet hodnot není prováděn zcela automaticky, ale je nutné použít klávesovou zkratku určenou buď pro přepočet jednoho řádku nebo pro přepočet celé tabulky.
Obrázek 25: Tabulka s jednoduchým vzorcem zapsaným přímo do buňky, v níž se má zobrazit výsledek výpočtu.
Pro přepočet jednoho řádku slouží klávesová zkratka C-c * a v případě, že se má přepočítat celá tabulka, lze použít klávesovou zkratku C-u C-c *.
12. Adresování buněk v tabulce
Vzorce v tabulkách musí nějakým způsobem adresovat jednotlivé buňky. Používat lze různé způsoby specifikace buněk, například dnes již klasické adresování typu jméno-sloupce+číslo-řádku, například A1. Ovšem v režimu org-mode se namísto toho doporučuje použít adresování stylem @řádek$sloupec, například tedy @2$3. Zajímavé je, že čísla sloupců mohou být zadány relativně, například @2$+1 nebo naopak @2$-1. První sloupec lze zapsat $< a poslední $> (podobným způsobem se zapisuje i první a poslední řádek v tabulce. Pokud zapíšete jen jednu souřadnici, tj. pouze sloupec nebo pouze řádek, bude zbylá souřadnice odpovídat aktuálnímu sloupci či řádku. Opět si ukažme příklad zápisu: $3 popř. @2. Možností adresování buněk existuje ještě větší množství, ale prozatím nám budou postačovat výše uvedené varianty.
Obrázek 26: Ve skutečnosti bude nakonec vzorec uložen pod tabulkou ve speciálně naformátovaném textovém objektu, který lze skrýt (podobně, jako je ve výchozím nastavení vzorec skryt i v běžných tabulkových procesorech).
Obrázek 27: Ve vzorci není uvedeno číslo řádku, proto se vzorec může bez problémů aplikovat na všechny řádky tabulky.
13. Zobrazení adres sloupců a řádků
S využitím klávesové zkratky C-c } je možné zobrazit indexy sloupců a řádků a pomoci tak v orientaci ve složitějších tabulkách. Opětovným stiskem stejné klávesové zkratky se koordináty sloupců a řádků opět skryjí:
Obrázek 28: Zobrazení indexů sloupců a řádků po použití klávesové zkratky C-c }.
14. Přesuny celých sloupců nebo řádků
Pokoušeli jste se někdy v tabulkovém procesoru přesouvat celé řádky tabulky nahoru či dolů, popř. celé sloupce doleva a doprava? Tyto operace nebývají snadno dostupné, ovšem v režimu org-mode je to jedna z nejjednodušších operací vůbec. Postačuje mít kurzor umístěn kdekoli v tabulce a použít klávesovou zkratku M-šipka. Pokud stisknete šipku doleva, posune se celý sloupec doleva (a původní levý sloupec doprava). Podobně je tomu i u dalších směrů, takže přeskládání tabulky je záležitostí doslova na několik sekund. Podívejme se na screenshoty, kde jsou tyto operace naznačeny:
Obrázek 29: Původní tabulka.
Obrázek 30: Prohození sloupců klávesovou zkratkou M-šipka doprava.
Obrázek 31: Prohození řádků klávesovou zkratkou M-šipka dolů.
Obrázek 32: Zpětné prohození řádků klávesovou zkratkou M-šipka dolů.
15. Odkazy v dokumentech
Práce s odkazy je další velmi užitečnou vlastností režimu org-mode. Odkazy se do dokumentů vkládají pomocí klávesové zkratky C-c C-l. Emacs se v tomto případě zeptá jak na samotný odkaz, tak i na jeho popis. Vložit lze například klasické URL, mailovou adresu, lokální odkaz atd. Podrobnosti si opět ukážeme příště, dnes se o této vlastnosti zmiňujeme jen pro úplnost.
16. Export dokumentů do dalších formátů
Poslední užitečná vlastnost modulu org-mode, o které se dnes zmíníme, spočívá v možnosti exportu dokumentu (poznámek, diáře, ) do různých souborových formátů, například do HTML, PDF, TeXu atd. Někteří uživatelé, kteří například musí odevzdávat články v TeXu či LaTeXu dokonce tyto články píšou přímo v org-mode a výsledné vygenerované soubory popř. pouze nepatrně poupraví a přidají do příslušné šablony (samozřejmě záleží na tom, zda má článek obsahovat spíše běžný strukturovaný text s tabulkami nebo velké množství vzorců a grafů).
Obrázek 33: Interaktivní dialog pro export diáře do různých formátů.
17. Převod diáře na HTML stránku
Pravděpodobně nejčastěji se setkáme s exportem celého diáře na HTML stránku, kterou je následně možné publikovat. Plugin org-mode tak může nahradit jednoduchý CMS (ve skutečnosti je toto řešení mnohdy mnohem lepší, než CMS s vlastním GUI). Podívejme se nyní na to, jak „čistý“ může být vygenerovaný dokument:
Obrázek 34: Výsledek exportu do HTML.
18. Export diáře do TeXu
Podobným způsobem je možné realizovat export do TeXu a LaTeXu. Opět se podívejme na výsledný dokument, tentokrát exportovaný do LaTeXu:
Obrázek 35: Výsledek exportu do TeXu.
19. Seznam dnes popsaných příkazů režimu org-mode
V této kapitole jsou pro úplnost vypsány všechny příkazy režimu org-mode, s nimiž jsme se dnes seznámili:
Objekt | Klávesová zkratka | Význam klávesové zkratky |
---|---|---|
strom/podstrom | TAB | změna viditelnosti konkrétního vybraného podstromu (postupně se rotuje mezi různými úrovněmi) |
strom/podstrom | S-TAB | změna viditelnosti obsahu celého bufferu (dokumentu) |
celý dokument | C-u C-u TAB | výchozí nastavení viditelnosti |
celý dokument | C-u C-u C-u TAB | zobrazení obsahu celého souboru, tj. celé jeho struktury |
seznam | M-RET | přidání dalšího prvku do (ne)číslovaného seznamu |
seznam | C-c – | postupná změna typu prvku (číslovaný seznam atd.) |
seznam | C-c ^ | seřazení seznamu |
seznam | C-c * | převedení aktivního prvku na nadpis |
seznam | C-c | | převod seznamu (i jiného bloku) na tabulku |
seznam | M-šipka nahoru | přesun prvku v rámci seznamu nahoru |
seznam | M-šipka dolů | přesun prvku v rámci seznamu dolů |
checkbox | C-c C-c | zaškrtnutí/zrušení zaškrtnutí políčka |
checkbox | C-c C-x C-b | zaškrtnutí/zrušení více políček |
checkboxy | C-c # | výpočet % nebo zlomku dokončených úkolů |
tabulka | C-c * | přepočet jednoho řádku |
tabulka | C-u C-c * | přepočet celé tabulky |
tabulka | C-c } | zobrazení indexů řádků i sloupců |
tabulka | M-šipka doleva | prohození dvou sloupců |
tabulka | M-šipka doprava | prohození dvou sloupců |
tabulka | M-šipka nahoru | prohození dvou řádků |
tabulka | M-šipka dolů | prohození dvou řádků |
dokument | C-c C-l | vložení odkazu (linku) |
20. Odkazy na Internetu
- Org-Mode Reference Card
https://orgmode.org/orgcard.pdf - Org-mode Tutorial 1 – Introduction and basics
https://www.youtube.com/watch?v=vCyBu8Az254 - Getting Started With Org Mode
https://www.youtube.com/watch?v=SzA2YODtgK4 - Org as a spreadsheet system: a short introduction
https://orgmode.org/worg/org-tutorials/org-spreadsheet-intro.html - A Guided Tour of Emacs
https://www.gnu.org/software/emacs/tour/ - Emacs (Wikipedia)
https://en.wikipedia.org/wiki/Emacs - Emacs timeline
http://www.jwz.org/doc/emacs-timeline.html - Emacs Text Editors Family
http://texteditors.org/cgi-bin/wiki.pl?EmacsFamily - Evil (Emacs Wiki)
https://www.emacswiki.org/emacs/Evil - Evil (na GitHubu)
https://github.com/emacs-evil/evil - Evil (na stránkách repositáře MELPA)
https://melpa.org/#/evil - Evil Mode: How I Switched From VIM to Emacs
https://blog.jakuba.net/2014/06/23/evil-mode-how-to-switch-from-vim-to-emacs.html - Emacs/Evil-mode – A basic reference to using evil mode in Emacs
http://www.aakarshnair.com/posts/emacs-evil-mode-cheatsheet - From Vim to Emacs+Evil chaotic migration guide
https://juanjoalvarez.net/es/detail/2014/sep/19/vim-emacsevil-chaotic-migration-guide/ - Introduction to evil-mode {video)
https://www.youtube.com/watch?v=PeVQwYUxYEg - GNU Emacs (home page)
https://www.gnu.org/software/emacs/ - GNU Emacs (texteditors.org)
http://texteditors.org/cgi-bin/wiki.pl?GnuEmacs - GNU Emacs Lisp Reference Manual: Point
https://www.gnu.org/software/emacs/manual/html_node/elisp/Point.html - GNU Emacs Lisp Reference Manual: Narrowing
https://www.gnu.org/software/emacs/manual/html_node/elisp/Narrowing.html - GNU Emacs Lisp Reference Manual: Functions that Create Markers
https://www.gnu.org/software/emacs/manual/html_node/elisp/Creating-Markers.html - GNU Emacs Lisp Reference Manual: Motion
https://www.gnu.org/software/emacs/manual/html_node/elisp/Motion.html#Motion - GNU Emacs Lisp Reference Manual: Basic Char Syntax
https://www.gnu.org/software/emacs/manual/html_node/elisp/Basic-Char-Syntax.html - Elisp: Sequence: List, Array
http://ergoemacs.org/emacs/elisp_list_vs_vector.html - Elisp: Property List
http://ergoemacs.org/emacs/elisp_property_list.html - Elisp: Hash Table
http://ergoemacs.org/emacs/elisp_hash_table.html - Elisp: Association List
http://ergoemacs.org/emacs/elisp_association_list.html - The mapcar Function (An Introduction to Programming in Emacs Lisp)
https://www.gnu.org/software/emacs/manual/html_node/eintr/mapcar.html - Anaphoric macro
https://en.wikipedia.org/wiki/Anaphoric_macro - Some Common Lisp Loop Macro Examples
https://www.youtube.com/watch?v=3yl8o6r_omw - The Roots of Lisp
http://www.paulgraham.com/rootsoflisp.html - An Introduction To Using GDB Under Emacs
http://tedlab.mit.edu/~dr/gdbintro.html - An Introduction to Programming in Emacs Lisp
https://www.gnu.org/software/emacs/manual/html_node/eintr/index.html - 27.6 Running Debuggers Under Emacs
https://www.gnu.org/software/emacs/manual/html_node/emacs/Debuggers.html - GdbMode
http://www.emacswiki.org/emacs/GdbMode - Vrapper aneb spojení možností Vimu a Eclipse
https://mojefedora.cz/vrapper-aneb-spojeni-moznosti-vimu-a-eclipse/ - Vrapper aneb spojení možností Vimu a Eclipse (část 2: vyhledávání a nahrazování textu)
https://mojefedora.cz/vrapper-aneb-spojeni-moznosti-vimu-a-eclipse-cast-2-vyhledavani-a-nahrazovani-textu/ - EINE (Emacs Wiki)
http://www.emacswiki.org/emacs/EINE - EINE (Texteditors.org)
http://texteditors.org/cgi-bin/wiki.pl?EINE - ZWEI (Emacs Wiki)
http://www.emacswiki.org/emacs/ZWEI - ZWEI (Texteditors.org)
http://texteditors.org/cgi-bin/wiki.pl?ZWEI - Zmacs (Wikipedia)
https://en.wikipedia.org/wiki/Zmacs - Zmacs (Texteditors.org)
http://texteditors.org/cgi-bin/wiki.pl?Zmacs