Základy použití režimu org-mode v Emacsu

9. 10. 2018
Doba čtení: 17 minut

Sdílet

Minulý týden jsme se seznámili s pluginem vim-orgmode pro organizaci poznámek a diářů v editoru Vim. Možnosti tohoto pluginu jsou inspirovány mnohem slavnějším modulem pro Emacs. Dnes se seznámíme s jeho základními možnostmi.

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

5. Tvorba seznamů

6. Další operace se seznamy

7. Zaškrtávací políčka (checkboxy)

8. Základní statistika pro seznamy se zaškrtávacími políčky

9. Jednoduché tabulky

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ů

15. Odkazy v dokumentech

16. Export dokumentů do dalších formátů

17. Převod diáře na HTML stránku

18. Export diáře do TeXu

19. Seznam dnes popsaných příkazů režimu org-mode

20. Odkazy na Internetu

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.

Poznámka: ve skutečnosti pracují tyto příkazy korektně i ve chvíli, kdy s využitím standardní klávesové zkratky C-SPACE vybereme větší množství prvků do bloku – posunou se všechny takto vybrané prvky.

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í
Poznámka: podobným způsobem je možné vytvářet i složitější seznamy, které jsou hierarchické. Způsob práce s nimi i režimy výpočtu hotových úkolů si podrobněji popíšeme v navazujícím článku.

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.

Poznámka: v případě, že se vám podaří tabulku rozházet, tj. jednotlivé sloupce nebudou umístěny přímo pod sebou, není nic ztraceno. Vše by se mělo opravit po stisku klávesy TAB, která kromě přeskoku na další buňku v tabulce provede i její opakované naformátování.

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).

Poznámka: samozřejmě jsou podporovány i oblasti buněk, ovšem prozatím nevíme, v jakých vzorcích se oblasti mohou použít. Podrobnosti budou opět vysvětleny příště.

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.

Poznámka: tvorba odkazů je částečně podporována i ve Vimovském režimu vim-orgmode, ale vyžaduje pro svou činnost další plugin. Navíc je nutné upozornit na to, že v originálním org-mode jsou možnosti odkazů mnohem větší (s dalšími pokročilejšími možnostmi se seznámíme v navazujícím článku).

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:

bitcoin_skoleni

Obrázek 35: Výsledek exportu do TeXu.

Poznámka: dokonce je možné přímo do diáře vkládat informace pro konkrétní formát, do kterého bude prováděn export. To se hodí právě u TeXu a LaTeXu pro sazbu složitějších částí dokumentu.

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

  1. Org-Mode Reference Card
    https://orgmode.org/orgcard.pdf
  2. Org-mode Tutorial 1 – Introduction and basics
    https://www.youtube.com/wat­ch?v=vCyBu8Az254
  3. Getting Started With Org Mode
    https://www.youtube.com/wat­ch?v=SzA2YODtgK4
  4. Org as a spreadsheet system: a short introduction
    https://orgmode.org/worg/org-tutorials/org-spreadsheet-intro.html
  5. A Guided Tour of Emacs
    https://www.gnu.org/softwa­re/emacs/tour/
  6. Emacs (Wikipedia)
    https://en.wikipedia.org/wiki/Emacs
  7. Emacs timeline
    http://www.jwz.org/doc/emacs-timeline.html
  8. Emacs Text Editors Family
    http://texteditors.org/cgi-bin/wiki.pl?EmacsFamily
  9. Evil (Emacs Wiki)
    https://www.emacswiki.org/emacs/Evil
  10. Evil (na GitHubu)
    https://github.com/emacs-evil/evil
  11. Evil (na stránkách repositáře MELPA)
    https://melpa.org/#/evil
  12. Evil Mode: How I Switched From VIM to Emacs
    https://blog.jakuba.net/2014/06/23/e­vil-mode-how-to-switch-from-vim-to-emacs.html
  13. Emacs/Evil-mode – A basic reference to using evil mode in Emacs
    http://www.aakarshnair.com/posts/emacs-evil-mode-cheatsheet
  14. From Vim to Emacs+Evil chaotic migration guide
    https://juanjoalvarez.net/es/de­tail/2014/sep/19/vim-emacsevil-chaotic-migration-guide/
  15. Introduction to evil-mode {video)
    https://www.youtube.com/wat­ch?v=PeVQwYUxYEg
  16. GNU Emacs (home page)
    https://www.gnu.org/software/emacs/
  17. GNU Emacs (texteditors.org)
    http://texteditors.org/cgi-bin/wiki.pl?GnuEmacs
  18. GNU Emacs Lisp Reference Manual: Point
    https://www.gnu.org/softwa­re/emacs/manual/html_node/e­lisp/Point.html
  19. GNU Emacs Lisp Reference Manual: Narrowing
    https://www.gnu.org/softwa­re/emacs/manual/html_node/e­lisp/Narrowing.html
  20. GNU Emacs Lisp Reference Manual: Functions that Create Markers
    https://www.gnu.org/softwa­re/emacs/manual/html_node/e­lisp/Creating-Markers.html
  21. GNU Emacs Lisp Reference Manual: Motion
    https://www.gnu.org/softwa­re/emacs/manual/html_node/e­lisp/Motion.html#Motion
  22. GNU Emacs Lisp Reference Manual: Basic Char Syntax
    https://www.gnu.org/softwa­re/emacs/manual/html_node/e­lisp/Basic-Char-Syntax.html
  23. Elisp: Sequence: List, Array
    http://ergoemacs.org/emac­s/elisp_list_vs_vector.html
  24. Elisp: Property List
    http://ergoemacs.org/emac­s/elisp_property_list.html
  25. Elisp: Hash Table
    http://ergoemacs.org/emac­s/elisp_hash_table.html
  26. Elisp: Association List
    http://ergoemacs.org/emac­s/elisp_association_list.html
  27. The mapcar Function (An Introduction to Programming in Emacs Lisp)
    https://www.gnu.org/softwa­re/emacs/manual/html_node/e­intr/mapcar.html
  28. Anaphoric macro
    https://en.wikipedia.org/wi­ki/Anaphoric_macro
  29. Some Common Lisp Loop Macro Examples
    https://www.youtube.com/wat­ch?v=3yl8o6r_omw
  30. The Roots of Lisp
    http://www.paulgraham.com/ro­otsoflisp.html
  31. An Introduction To Using GDB Under Emacs
    http://tedlab.mit.edu/~dr/gdbin­tro.html
  32. An Introduction to Programming in Emacs Lisp
    https://www.gnu.org/softwa­re/emacs/manual/html_node/e­intr/index.html
  33. 27.6 Running Debuggers Under Emacs
    https://www.gnu.org/softwa­re/emacs/manual/html_node/e­macs/Debuggers.html
  34. GdbMode
    http://www.emacswiki.org/e­macs/GdbMode
  35. Vrapper aneb spojení možností Vimu a Eclipse
    https://mojefedora.cz/vrapper-aneb-spojeni-moznosti-vimu-a-eclipse/
  36. 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/
  37. EINE (Emacs Wiki)
    http://www.emacswiki.org/emacs/EINE
  38. EINE (Texteditors.org)
    http://texteditors.org/cgi-bin/wiki.pl?EINE
  39. ZWEI (Emacs Wiki)
    http://www.emacswiki.org/emacs/ZWEI
  40. ZWEI (Texteditors.org)
    http://texteditors.org/cgi-bin/wiki.pl?ZWEI
  41. Zmacs (Wikipedia)
    https://en.wikipedia.org/wiki/Zmacs
  42. Zmacs (Texteditors.org)
    http://texteditors.org/cgi-bin/wiki.pl?Zmacs

Autor článku

Vystudoval VUT FIT a v současné době pracuje na projektech vytvářených v jazycích Python a Go.