Historie vývoje textových editorů: EINE, ZWEI, Emacs

15. 9. 2015
Doba čtení: 21 minut

Sdílet

Seriál o historii vývoje textových editorů by samozřejmě nebyl úplný bez zmínky o rodině textových editorů Emacs. Podobně, jako je tomu u rodiny editorů vi/Vim, je možné vývoj Emacsu sledovat až do poloviny sedmdesátých let minulého století, kdy vznikl TMACS a TECMAC a později pak i první „plnohodnotná“ verze Emacsu.

Obsah

1. Historie vývoje textových editorů: EINE, ZWEI, Emacs

2. TECMAC a TMACS

3. Editor MACroS → EMACS

4. Programovací jazyk LISP a jeho vliv na další vývoj Emacsu

5. EINE (EINE Is Not EMACS)

6. ZWEI (ZWEI Was EINE Initially)

7. Emacs na UNIXu: GNU Emacs a XEmacs

8. Emacs Lisp

9. Emacs a textové procesory

10. Perfect Writer

11. Editory s klávesovými zkratkami odvozenými od Emacsu

12. e3

13. Joe

14. Jed

15. Odkazy na Internetu

1. Historie vývoje textových editorů: EINE, ZWEI, Emacs

V dnešní části článku o historii vývoje textových editorů se budeme zabývat převážně druhou nejdůležitější větví vývoje těchto nástrojů. Popíšeme si totiž postupné rozšiřování maker určených pro editor TECO a sdružení vybraných (nejužitečnějších) maker do samostatného balíčku nazvaného později EMACS. Právě tehdy byly položeny základy pro postupný vývoj hned několika aplikací používajících podobné klávesové zkratky i stejnou či alespoň příbuznou filozofii ovládání, v jejichž názvu se slovo Emacs či EMACS vyskytuje (kromě textových editorů existovaly ovšem i textové procesory založené na Emacsu, například Perfect Writer).

Obrázek 1: TECO, který byl součástí systémového disku OS/8, sice není přímým ideovým předchůdcem EMACSu, nicméně právě tento editor díky podpoře tvorby maker umožnil vytvoření balíčků TMACS a TECMAC.

V současnosti je z těchto editorů pravděpodobně nejpopulárnější aplikace nazvaná GNU Emacs, ve skutečnosti však i dnes existuje a je vyvíjeno několik dalších „alternativních“ implementací Emacsu, které není možné přehlížet. Zmiňme především MicroEMACS, XEmacs či JOVE. Nicméně i dříve popsaný editor e3 či Joe dokáže základní klávesové zkratky Emacsu emulovat (i když tyto editory postrádají možnosti využívání a tvorby maker).

Obrázek 2: Manuál k textovému editoru TECO pro minipočítače PDP.

2. TECMAC a TMACS

Již v první části seriálu o historii vývoje textových editorů jsme se zmínili o jednom z prvních plnohodnotných editorů, který se jmenoval TECO neboli Tape Editor and COrrector. Později se zkratka TECO začala rozepisovat na Text Editor and COrrector, ještě později na Text Editor Character Oriented, což pravděpodobně souviselo s tím, že se tento editor ovládal jednoznakovými příkazy, z nichž dokonce bylo možné sestavovat – pro většinu lidí prakticky nečitelné – programy. První verze textového editoru TECO vznikla již v roce 1963 a posléze byl jeho kód prakticky nekontrolovaně šířen, upravován a rozšiřován mnohými autory. Původně se jednalo o řádkový editor (ve stylu ed-u či Edlinu), ovšem některé úpravy editor TECO změnily na takřka plnohodnotný celoobrazovkový editor. Historie rodiny textových editorů Emacs se začala psát přibližně v roce 1972, kdy zásluhou Carla Mikkelsena vznikla sada maker právě pro editor TECO, která umožňovala interaktivní editaci s automatickým překreslováním displeje (což je dnes automaticky očekávaná funkce, která však v roce 1972 nebyla zcela běžná).

Obrázek 3: Graf znázorňující postupný vývoj editorů z rodiny Emacs od poloviny sedmdesátých let do poloviny osmdesátých let minulého století.

Mimochodem, tento nový režim se nazýval Control-R či jen Ctrl-R podle klávesové zkratky, která interaktivní režim zapínala. Další důležitá postava v historii Emacsu je Richard Stallman, který v té době pracoval ve slavné Artifical Intelligence Laboratory (AI Lab) na neméně slavné MIT. Ten taktéž TECO rozšířil o možnost snadnější tvorby maker. Právě tato upravená verze TECA se stala v AI Lab oblíbená, takže není divu, že poměrně chaoticky vznikala různá více či méně rozsáhlá makra, jejichž jména většinou končila na MAC nebo MACS (zkratka od slova „macro“). O přibližně čtyři roky později Guy Steele (mj. autor jazyka Scheme a spoluautor specifikace jazyka Java), Dave Moon, Richard Greenblatt, Character Frankston a další autoři mnoho již existujících rozšiřujících maker existujících pro upravený editor TECO unifikovali a vytvořili dvě sady pojmenované TECMAC a TMACS. Příkazy implementované v těchto makrech se staly základem pro první skutečnou verzi editoru EMACS, o němž se zmíníme v navazující kapitole.

Obrázek 4: ZMACS je pokračovatelem editoru ZWEI naprogramovaného v LISPu (autor screenshotu: Phil.grenet).

3. Editor MACroS → EMACS

Dalšími úpravami a unifikací sady maker pro textový editor TECO se zabýval především Guy Steele a Richard Stallman. Výsledkem byl systém nazvaný EMACS (Editor MACroS, 1976). Ten původně běžel na stejném systému, jako samotný editor TECO v AI Lab, tj. na minipočítači PDP-10 s operačním systémem ITS (Incompatible Timesharing System :-) ), ovšem díky oblíbenosti EMACSu se tento editor postupně začal šířit na další systémy. Mezi první operační systém, kam byl EMACS portován, patřil TOPS-20 firmy DEC, který byl taktéž určen pro minipočítače PDP-10. Další vývoj EMACSu byl poměrně hektický, protože prakticky totožně vzniklo mnoho jeho nových implementací, z nichž zajímavá je především řada editorů nazvaných Multics Emacs, EINE, ZWEI a ZMACS, které byly naprogramovány v nějaké variantě programovacího jazyka LISP. Od té doby je LISP s Emacsem neoddělitelně spojen, protože je v něm implementována jak velká část samotného editoru (až na základní nízkoúrovňové knihovny), tak i všechna uživatelská makra i nové moduly, které mohou z Emacsu udělat například mailového klienta, popř. emulovat textový editor vi/Vim (evil-mode) :-)

Obrázek 5: Jedním z textových editorů, které s Emacsem sdílejí základní klávesové zkratky, je i editor nazvaný JOVE.

4. Programovací jazyk LISP a jeho vliv na další vývoj Emacsu

Programovací jazyk LISP je skutečně s Emacsem takřka neoddělitelně spojen, a to mj. i proto, že dnes pravděpodobně nejrozšířenější varianta Emacsu – GNU Emacs – je z velké části naprogramována v Emacs LISPu (Elispu). Volba LISPu vlastně není ani příliš překvapivá, protože se jednalo o programovací jazyk, který byl v polovině sedmdesátých let minulého století v AI Labu poměrně intenzivně používán; později se dokonce někteří lidé z AI Labu podíleli i na konstrukci počítačů s LISPem. Jednalo se o takzvané Lisp Machines vyráběné například společností Symbolics, LMI Lambda či Xerox.

Obrázek 6: Vývoj důležitých dialektů LISPu (Zdroj: Wikipedie).

Historie programovacího jazyka LISP je však ve skutečnosti mnohem delší, neboť se jedná o jeden z nejstarších programovacích jazyků vůbec. Autorem teoretického návrhu tohoto jazyka je John McCarthy, který se již v roce 1956 připojil k týmu, jehož úkolem bylo navrhnout algebraický programovací jazyk umožňující zpracování seznamů, jenž by byl vhodný pro vývoj systémů umělé inteligence – AI (zatímco dnes jsou „v kurzu“ enterprise systémy, cloudy, popř. WEB 2.0, v padesátých a šedesátých letech minulého století se jednalo o umělou inteligenci a expertní systémy). McCarthy navrhl, aby se fakta o okolním světě (která může AI při své činnosti použít) reprezentovala formou vět ve vhodně strukturovaném formálním jazyce. Posléze se ukázalo, že je výhodné reprezentovat jednotlivé věty formou seznamů. McCarthy myšlenku jazyka vhodného pro AI rozpracoval dále – odklonil se například od infixové notace zápisu algebraických výrazů, protože naprogramování některých manipulací s těmito výrazy (derivace, integrace, zjednodušení výrazů, logická dedukce) bylo zbytečně složité.

lisp01

Obrázek 7: Začátek vývoje jednotlivých rodin programovacích jazyků.

Následně McCarthy ve svých teoretických pracích (vznikajících v průběhu let 1957 a 1958) ukázal, že je možné pomocí několika poměrně jednoduchých operací (a notací pro zápis funkcí) vytvořit programovací jazyk, který je turingovsky kompletní (tj. jeho výpočetní mocnost je ekvivalentní Turingovu stroji), ale zápis algoritmů v tomto jazyce je mnohem jednodušší než zápis pravidel pro Turingův stroj. Tento jazyk, jenž byl z velké části založen na Lambda kalkulu, obsahoval možnost vytváření rekurzivních funkcí (což byl významný rozdíl například oproti tehdejší verzi FORTRANU), funkce jako argumenty jiných funkcí, podmíněné výrazy (jedna z variant speciální formy), funkce pro manipulaci se seznamy a v neposlední řadě také funkci eval. Na McCarthovu teoretickou práci navázal S. R. Russell, který si uvědomil, že samotná funkce eval, pokud by byla implementována na nějakém počítači, může sloužit jako základ plnohodnotného interpretru jazyka LISP (interpretr LISPu se někdy též označuje zkratkou REPL: Read-Eval-Print-Loop, tj. interpretr ve smyčce načítá jednotlivé výrazy, vyhodnocuje je a následně tiskne jejich výslednou hodnotu). Russell skutečně celou smyčku REPL implementoval – tímto způsobem se zrodila první reálná verze LISPu.

V průběhu dalších více než pěti desetiletí vzniklo mnoho dialektů tohoto programovacího jazyka, například MacLISP, InterLISP, ZetaLISP, XLisp, AutoLISP (původně odvozený z XLispu), Emacs LISP nebo slavný Common LISP. Kromě těchto implementací jazyka LISP, které se od sebe v několika ohledech odlišují (například existencí či neexistencí maker či objektového systému), vznikl v minulosti i nový dialekt tohoto jazyka nazvaný Scheme (původně Schemer), jehož autory jsou dnes již zmíněný Guy L. Steele a Gerald Jay Sussman. Tento dialekt je implementačně jednodušší a také se ho lze naučit rychleji než mnohé další varianty jazyka LISP. Právě z těchto důvodů se Scheme využívá či využívalo jak při výuce programování, tak i v mnoha open-source projektech, například v grafickém editoru GIMP jako jeden z podporovaných skriptovacích jazyků. Richard Stallman si dokonce přál, aby se Scheme stalo standardním skriptovacím jazykem většiny GNU aplikací, což je idea, která se především po vzniku dalších vysokoúrovňových programovacích jazyků (Perl, Python, TCL) nakonec neuskutečnila (z tohoto období pochází také známá TCL War, která ukázala některé konceptuální rozdíly mezi aplikacemi založenými na LISPu/Scheme a modelem UNIXu založeného na používání textových proudů).

5. EINE (EINE Is Not EMACS)

Nyní si konečně můžeme popsat ty implementace textového editoru Emacs, které byly naprogramovány v některé variantě programovacího jazyka LISP zmíněného v předchozí kapitole. Prvním důležitým milníkem je editor EINE (EINE Is Not EMACS), který vznikl již v roce 1976, tj. ve zhruba stejném období, jako originální TECOvský EMACS; ostatně cílem tohoto projektu bylo zajistit veškerou funkcionalitu nabízenou Stallmanovým původním EMACSem (oficiálně je EINE považován za druhý editor z rodiny Emacs v pořadí). Autory tohoto projektu je Daniel Weinreb a Mike McMahon a cílovým systémem, na němž měl EINE fungovat, byly LISPovské počítače, o nichž jsme se taktéž zmínili v předchozím textu. Zajímavé bylo, že EINE dokázal využívat systém oken, který byl na LISPovských počítačích dostupný, takže se současně jednalo o první Emacs s grafickým uživatelským rozhraním (i když zde nebylo využíváno pro žádné složitější operace).

Obrázek 8: Spuštění textového editoru GNU Emacs se zobrazením hypertextového souboru s nápovědou.

6. ZWEI (ZWEI Was EINE Initially)

Na textový editor EINE navázal o dva roky později další podobně koncipovaný editor nazvaný ZWEI, který měl i stejné autory. Podobně jako v případě EINE, i jméno ZWEI je rekurzivní zkratkou z „ZWEI Was EINE Initially“. Nejdůležitější novinkou byla změna datové struktury určené pro interní reprezentaci editovaných dokumentů. Namísto (stále ještě v jiných textových editorech používaného) gap bufferu se totiž přešlo na dvoucestný spojový seznam, který je při některých operacích s textem flexibilnější. Z editoru ZWEI se později vyvinul moderněji pojatý ZMacs (někdy psaný ZMACS), který byl implementován na počítačích Symbolics LM-2, LMI LispM a TI Explorer. Implementačním jazykem Zmacsu byl ZetaLisp.

Obrázek 9: V GNU Emacsu lze relativně snadno provádět ladění. Zde můžeme vidět nastavení breakpointu ve zdrojovém kódu laděné aplikace. Informace o nastaveném breakpointu se současně zobrazí i v interaktivním okně GNU Debuggeru.

7. Emacs na UNIXu: GNU Emacs a XEmacs

Prvním Emacsem, který byl portován na operační systém UNIX, byl takzvaný Gosling Emacs naprogramovaný Jamesem Goslingem v roce 1981 (ano, právě tím Goslingem, který stál za vývojem jazyka Java). Jednalo se současně o první moderní typ Emacsu, při jehož implementaci byly použity dva programovací jazyky: programovací jazyk C pro nízkoúrovňové operace a MockLisp pro psaní rozšiřujících modulů (MockLisp však není standardním LISPem, i když by k tomu jeho jméno mohlo svádět). Podobný koncept použil i Richard Stallman při vývoji GNU Emacsu (1984), což je dnes společně s XEmacsem pravděpodobně nejpoužívanější editor z rodiny Emacs vůbec. GNU Emacs taktéž běžel na UNIXových systémech, ovšem namísto jazyka MockLisp byl využit mnohem lepší dialekt LISPu nazvaný jednoduše Emacs Lisp či Elisp. Elisp byl později využit i v „konkurenčním“ XEmacsu (slovo „konkurenční“ je psáno v uvozovkách, protože XEmacs ve skutečnosti vznikl jako fork GNU Emacsu; dnes je jeho vývoj poněkud zpomalený a přebírá novinky právě z GNU Emacsu).

Obrázek 10: V nápovědě ke GNU Emacsu je režim knihovny GUD (zajišťující napojení na debugger) popsán do všech podrobností.

8. Emacs Lisp

Nedílnou součástí jak GNU Emacsu, tak i XEmacsu je Emacs Lisp, zkráceně Elisp. Jedná se o pragmaticky navržený programovací jazyk, který vývojářům umožňuje psát jak funkcionální kód, tak i kód imperativní (v Elispu najdeme například programovou smyčku while apod.). Některé vlastnosti Elispu byly převzaty ze Scheme, ostatně Richard Stallman zpočátku uvažoval právě o použití Scheme, jehož interpret však nebyl pro implementaci interaktivního textového editoru dostatečně výkonný. Elisp kromě seznamů jakožto základního datového typu podporuje i práci s poli (prvky jsou indexovány čísly) a asociativními poli (nejedná se však o immutable struktury). Ovšem nejdůležitější vlastnost Elispu spočívá v možnosti používat již v Emacsu vytvořené funkce, takže lze pracovat s jednotlivými buffery, okny, soubory, pozicemi v textu apod. Později byly přidány i funkce pro přístup k uživatelskému rozhraní Emacsu (fonty, obrázky, tlačítka, posuvníky apod). Právě tyto funkce jsou využívány v různých rozšiřujících modulech.

Obrázek 11: Nápověda k Elispu v GNU Emacsu.

Poznámka: zajímavé porovnání vlastností některých dnes používaných dialektů LISPu naleznete na adrese http://hyperpolyglot.org/lisp.

9. Emacs a textové procesory

Aplikace z rodiny editorů Emacs jsou tradičně považovány za textové editory, ovšem je zajímavé, že vznikly i textové procesory, které byly odvozeny od nějaké varianty Emacsu. Dnes se zmíníme pouze o jediném zástupci tohoto typu aplikací. Jedná se o textový procesor nazvaný Perfect Writer, o jehož významu svědčí především fakt, že se dnes jedná o dosti málo známou aplikaci, na rozdíl od dalších historických textových procesorů, jakými jsou Word Star, Word Perfect, Microsoft Word či XYWrite.

Obrázek 12: Součástí GNU Emacsu je i kalendář.

10. Perfect Writer

Textový procesor Perfect Writer byl odvozen od textového editoru nazvaného MINCE, což je jedna z variant Emacsu. Perfect Writer byl naprogramován v jazyku C a jeho celková velikost byla přibližně 441 kB (distribuován byl na dvou disketách s kapacitou 320 kB). Zajímavá byla podpora souběžné práce až se sedmi buffery (dnes je počet bufferů neomezen), existovala zde operace typu „undo“. Na obrazovce bylo možné díky použití dvou oken (split window) zobrazit dva bufferu, přenášet mezi nimi text apod. Podporován byl i spell checker a z formátovacích příkazů (jedná se přece o textový procesor) bylo možné měnit zarovnání odstavců, nastavovat základní styl písma (tučné, kurzíva) a používat index či poznámky pod čarou.

11. Editory s klávesovými zkratkami odvozenými od Emacsu

V minulosti vzniklo mnoho variant textového editoru Emacs. Kromě výše popsaných aplikací EINE, ZWEI, ZMACS a GNU Emacs stojí za zmínku především MicroEMACS a od něj odvozený µEmacs (používaný Linusem Torvaldsem, ostatně právě ten commituje nejvíce oprav – http://git.kernel.org/cgit/e­ditors/uemacs/uemacs.git/log/), JOVE, ZILE a Hemlock. Nesmíme však zapomenout ani na celou řadu dalších aplikací, v nichž můžeme nalézt klávesové zkratky zpopularizované právě v Emacsu. Do jisté míry je Emacs emulován v jednodušších textových editorech, mezi něž patří e3, Joe či JED. Dále pak lze zmínit pluginy pro integrované vývojové prostředí Eclipse (Emacs+), plugin pro dnes tak populární Sublime Text (SublemacsPro) či plugin pro taktéž populární textový editor Atom (Atomic Emacs). Mnoho klávesových zkratek Emacsu ale nalezneme i v BASHi a aplikacích využívajících knihovnu GNU Readline.

Obrázek 13: I do známého integrovaného vývojového prostředí Eclipse existuje plugin nabízející chování a klávesové zkratky Emacsu.

12. e3

S minimalistickým celoobrazovkovým textovým editorem pojmenovaným e3 jsme se již v tomto seriálu setkali, takže si jen připomeňme, že e3 je naprogramován v assembleru mikroprocesorů řady x86. Zdrojový kód původní verze e3 je uložen v jediném souboru s přibližně 6500 řádky optimalizovaného assembleru určeného pro překlad do 32bitového režimu (použít lze například známý assembler NASM). Pro 64bitový režim existuje jednoduchý skript, který zdrojový kód e3 jednoduše transformuje. Kromě toho existuje i šestnáctibitová verze editoru e3 určená pro systém DOS či pro šestnáctibitové (real mode) zavaděče a různé utility a současně i varianta e3 přepsaná do programovacího jazyka C, aby bylo možné tento editor používat například na počítačích vybavených mikroprocesory ARM či MIPS. My se však v dalším textu budeme zabývat pouze originální 32bitovou a 64bitovou variantou e3 naprogramovanou v assembleru.

Obrázek 14: Spuštění editoru e3 v režimu emulace klávesových zkratek WordStaru.

Pro nás je v tomto článku důležitý především fakt, že, podobně jako je tomu u dále zmíněného textového editoru Joe, existuje několik režimů práce editoru e3. Ten totiž dokáže napodobit editor WordStar (spuštěno přes symlink nazvaný e3ws), dnes popisovaný Emacs (spuštěno přes symlink nazvaný e3em), Vi/Vim (spuštěno přes symlink nazvaný e3vi) Pico/Nano (spuštěno přes link e3pi) a konečně NEdit (Nirvana Editor) (spuštěno přes e3ne). Režimy je možné dokonce kdykoli přepínat i za běhu editoru a součástí je i obrazovka s klávesovými zkratkami (to vše je samozřejmě uloženo ve zmíněných 13 popř. 17 kB). Textový editor e3 nabízí dokonce i funkci „undo“, obsahuje kalkulačku (dokáže spočítat i složitý aritmetický výraz zapsaný v textu!) a – což je v našich podmínkách velmi důležité – podporuje plnohodnotný osmibitový vstup znaků. Oproti plnohodnotnému Emacsu však chybí jakákoli podpora pro tvorbu maker.

Obrázek 15: Spuštění editoru e3 v režimu emulace klávesových zkratek Emacsu.

Obrázek 16: Obrazovka s nápovědou je dostupná za všech okolností a přitom je vždy indikováno, jakou klávesovou zkratkou se nápověda zobrazí.

Obrázek 17: Editace zdrojového kódu napsaného v programovacím jazyce C.

Obrázek 18: Instalace editoru e3.

13. Joe

Druhý textový editor, který je možné v případě potřeby velmi snadným způsobem přepnout do režimu alespoň částečné kompatibility s Emacsem, je editor známý pod názvem Joe, neboli plným jménem Joe's own editor podle svého původního autora Joea Allena. Tento textový editor je mezi mnoha uživateli unixových systémů populární, a to jak díky množství nabízených funkcí, tak i kvůli tomu, že se jedná o relativně snadno ovladatelnou aplikaci, která je ovšem široce konfigurovatelná (na rozdíl od taktéž populárního editoru Nano, který je dosti primitivní). V základní instalaci je tento editor tvořen jediným spustitelným souborem joe, na nějž se v adresáři /usr/bin odkazuje několik symlinků, například jstar, jmacs či jpico.

Obrázek 19: Průběh instalace textového editoru Joe v Linuxu (Fedora 19).

Po spuštění těchto symlinků se editor Joe přepne do režimu emulace WordStaru, Emacsu popř. editoru Pico/GNU nano – dojde ke změně prakticky všech klávesových zkratek i obrazovek nápovědy. Nejdůležitějším rozdílem oproti skutečnému Emacsu je neexistence Emacs Lispu, i když poslední verze editoru Joe umožňují vytváření jednoduchých maker (ty však nejsou s plnohodnotným Lispem srovnatelné). Mimochodem – jedna z předností editoru Joe spočívá v možnosti mít neustále zobrazeno okno s nápovědou, které je rozdělené do několika listů, mezi nimiž se lze snadno přepínat (konkrétní klávesové zkratky pro přepínání se liší podle nastaveného režimu).

Obrázek 20: Jedna z předností editoru Joe: nápovědu lze mít zobrazenu neustále.

Obrázek 21: Režim emulace WordStaru popsaného minule.

Obrázek 22: Emulace dalších textových editorů.

Obrázek 23: Emulace Emacsu (povšimněte si změny v nápovědě: namísto bloků se zmiňují regiony).

Obrázek 24: Editace zdrojového kódu napsaného v jazyce C se zvýrazněním syntaxe.

Obrázek 25: Menu s možností změny konfigurace editoru Joe.

14. Jed

Další, v pořadí již třetí textový editor částečně kompatibilní s Emacsem, o němž se v dnešním článku ve stručnosti zmíníme, se jmenuje Jed. Jméno tohoto nástroje vzniklo na základě iniciál jeho tvůrce Johna E. Davise. Tento textový editor, který má za sebou již mnoho let vývoje i poměrně úctyhodný seznam podporovaných operačních systémů (včetně Windows, starobylého DOSu, mnoha typů UNIXů, samozřejmě Linuxu a dokonce i VMS), svým uživatelům nabízí poměrně široké množství funkcí. Zajímavé je, že kromě vlastních klávesových zkratek umožňuje emulaci práce v dalších textových editorech a procesorech, zejména v Emacsu (ostatně právě z tohoto důvodu se o Jedu vůbec zmiňujeme) a WordStaru (přesněji řečeno emulaci práce v textových editorech emulujících WordStar :-).

Obrázek 26: Průběh instalace textového editoru Jed.

Jedu lze taktéž souběžně pracovat s větším množstvím dokumentů, a to díky možnosti rozdělení plochy terminálu/konzole na několik oken (split windows). Uživatelům je k dispozici několik předpřipravených barevných schémat, včetně dvou schémat, která se snaží napodobit původní DOSová integrovaná vývojová prostředí typu Turbo Pascal, Borland Pascal, Turbo C či QBasic (známé tmavomodré pozadí a světlemodrá či žlutá písmena).

Obrázek 27: Existence režimu (částečné) kompatibility s editorem Emacs je důvod, proč se o editoru Jed zmiňujeme v dnešním článku.

Vzhledem k tomu, že Jed již patří mezi pokročilejší textové editory určené mj. i pro vývojáře a zkušené administrátory, obsahuje podporu pro zvýraznění syntaxe zdrojových souborů, obdélníkové bloky (v některých případech velmi užitečná vlastnost), výběr bloků se zvýrazněním apod. V Jedu lze používat i makra a velmi důležité taktéž je, že je tento textový editor vybaven interpretrem skriptovacího jazyka S-Lang, v němž je možné vytvářet i poměrně složité nadstavby (S-Lang je ovšem implementován ve formě samostatné knihovny použitelné i mimo vlastní editor). Nativní podporu pro Emacs Lisp zde však nenajdeme. Mezi další vlastnosti Jedu patří možnost práce s kalendářem či napojení na ispell. Podobně jako mnoho dalších editorů, které vznikly v osmdesátých letech minulého století, i Jed lze ovládat z klasického menu, přičemž většinu příkazů dostupných v menu lze vyvolat i přes klávesovou zkratku (naproti tomu dříve vytvořené editory, a to jak z rodiny vi/Vim, tak i z rodiny Emacsu, se spoléhají na použití příkazového řádku, který je nedílnou součástí uživatelského rozhraní textového editoru).

Obrázek 28: Editace zdrojového kódu se zvýrazněním syntaxe.

bitcoin_skoleni

Obrázek 29: Rozdělení plochy editoru do několika oken.

Obrázek 30: Obarvení podle IDE z DOSu a klasické roletové menu.

15. Odkazy na Internetu

  1. Emacs timeline
    http://www.jwz.org/doc/emacs-timeline.html
  2. EINE (Emacs Wiki)
    http://www.emacswiki.org/emacs/EINE
  3. EINE (Texteditors.org)
    http://texteditors.org/cgi-bin/wiki.pl?EINE
  4. ZWEI (Emacs Wiki)
    http://www.emacswiki.org/emacs/ZWEI
  5. ZWEI (Texteditors.org)
    http://texteditors.org/cgi-bin/wiki.pl?ZWEI
  6. Zmacs (Wikipedia)
    https://en.wikipedia.org/wiki/Zmacs
  7. Zmacs (Texteditors.org)
    http://texteditors.org/cgi-bin/wiki.pl?Zmacs
  8. TecoEmacs (Emacs Wiki)
    http://www.emacswiki.org/e­macs/TecoEmacs
  9. Micro Emacs
    http://www.emacswiki.org/e­macs/MicroEmacs
  10. Micro Emacs (Wikipedia)
    https://en.wikipedia.org/wi­ki/MicroEMACS
  11. EmacsHistory
    http://www.emacswiki.org/e­macs/EmacsHistory
  12. Seznam editorů s ovládáním podobným Emacsu či kompatibilních s příkazy Emacsu
    http://www.finseth.com/emacs.html
  13. George R. R. Martin writes with a DOS word processor
    http://www.cnet.com/news/george-r-r-martin-writes-with-a-dos-word-processor/#!
  14. Apple Writer
    http://apple2history.org/his­tory/ah18/#08
  15. COMPUTER PROGRAMMING by Paul Lutus
    http://www.atariarchives.or­g/deli/cottage_computer_pro­gramming.php
  16. Verze textového editoru D-Text
    http://wiki.oldcomp.cz/in­dex.php?title=Verze_texto­vého_editoru_D-Text
  17. The Writer (World of Spectrum)
    http://www.worldofspectrum­.org/infoseekid.cgi?id=0008989
  18. Tasword Two (World of Spectrum)
    http://www.worldofspectrum­.org/infoseekid.cgi?id=0008856
  19. SpeedScript source code
    http://www.atariarchives.or­g/speedscript/ch3.php
  20. SpeedScript 3.0: All Machine Language Word Processor For the Atari
    http://www.atariarchives.or­g/speedscript/ch1.php
  21. Čapek verze 3.1 (oskenovaný návod)
    http://www.atari8.cz/calp/da­ta/misc_cap/index.php
  22. Čížek V.3 (oskenovaný návod)
    http://www.atari8.cz/calp/da­ta/br_man_ciz/
  23. Editor O26 (příkazy)
    http://www.museumwaalsdor­p.nl/computer/comp789_o26­.html
  24. Editor O26 (stránka na texteditors.org)
    http://texteditors.org/cgi-bin/wiki.pl?O26
  25. Editor O26 (text editor, Wikipedia)
    https://en.wikipedia.org/wi­ki/O26_%28text_editor%29
  26. Textové editory pro mainframy
    http://texteditors.org/cgi-bin/wiki.pl?MainframeEditorFamily
  27. IDA
    http://texteditors.org/cgi-bin/wiki.pl?IDA_Editor
  28. qed
    http://texteditors.org/cgi-bin/wiki.pl?Qed
  29. qed (description)
    http://www.qef.com/html/to­olsdesc.html#qed
  30. Text editor (Wikipedia)
    https://en.wikipedia.org/wi­ki/Text_editor
  31. Line editor (Wikipedia)
    https://en.wikipedia.org/wi­ki/Line_editor
  32. The Vi Editor and its clones and programs with a vi like interface
    http://www.guckes.net/vi/
  33. www.vim.org: obsahuje verze Vimu i pro Amigu
    http://www.vim.org/
  34. Články o Vimu na Root.cz:
    http://www.root.cz/n/vim/clanky/
  35. Vim sedm – první část
    http://www.root.cz/clanky/vim-sedm-prvni-cast/
  36. vim2elvis (1.část)
    http://www.root.cz/clanky/vim2elvis-1/
  37. vim2elvis (2.část)
    http://www.root.cz/clanky/vim2elvis-2/
  38. History of the Text Editor
    http://vanstee.me/history-of-the-text-editor.html
  39. Interview with Bill Joy
    http://web.cecs.pdx.edu/~kir­kenda/joy84.html
  40. Hex Editors for Lin/unix
    http://blog.sourcepole.com/2006/09/07/hex-editors/
  41. bvi Home Page
    http://bvi.sourceforge.net/
  42. bvi (Wikipedia)
    https://en.wikipedia.org/wiki/Bvi
  43. vim (man page)
    http://www.linux-tutorial.info/modules.php?na­me=ManPage&sec=1&manpage=vim
  44. An incomplete history of the QED Text Editor
    http://ned.rubyforge.org/doc/qed.html
  45. QED Text Editor
    http://ned.rubyforge.org/doc/qed­man.html
  46. Wang 1200
    http://www.wang1200.org/
  47. Wang Laboratories
    http://en.wikipedia.org/wi­ki/Wang_Labs
  48. Wang OIS Emulator
    http://www.cass.net/~jdonog­hu/oisemul.html
  49. SpeedScript 3.2 for the Commodore 64
    http://www.atarimagazines­.com/compute/gazette/198705-speedscript.html
  50. Opravdoví programátoři nepoužívají Pascal
    http://www.logix.cz/michal/hu­mornik/Pojidaci.Kolacu.xp
  51. A Brief History of Word Processing
    http://www.stanford.edu/~bkunde/fb-press/articles/wdprhist.html
  52. XyWrite
    http://en.wikipedia.org/wiki/XyWrite
  53. W.E.Pete Peterson
    http://www.wordplace.com/ap/
  54. Orthodox Editors
    http://www.softpanorama.or­g/Articles/orthodox_editor­s.shtml
  55. Mainframe Museum ‚Where we started‘
    http://www.techsystemsps.com/Mainframe-Museum.htm
  56. IBM Mainframe album
    http://www-03.ibm.com/ibm/history/ex­hibits/mainframe/mainframe_al­bum.html
  57. Mainframe computer
    http://en.wikipedia.org/wi­ki/Mainframe_computer
  58. IBM mainframe
    http://en.wikipedia.org/wi­ki/IBM_mainframe
  59. IBM 700/7000 series
    http://en.wikipedia.org/wi­ki/IBM700/7000_series
  60. IBM System/360
    http://en.wikipedia.org/wi­ki/IBM_System/360
  61. IBM System/370
    http://en.wikipedia.org/wi­ki/IBM_System/370
  62. Datamatic 1000 by DATAmatic Corporation (1955)
    http://www.computermuseum­.li/Testpage/Datamatic-1000.html
  63. Burroughs – Third Generation Computers
    https://wiki.cc.gatech.edu/fol­klore/index.php/Burroughs_Third-Generation_Computers
  64. Burroughs B5000, B5500 and B5700 (original) documentation
    http://www.bitsavers.org/pdf/bu­rroughs/B5000_5500_5700/
  65. Burroughs B6500 and B6700 (original) documentation
    http://www.bitsavers.org/pdf/bu­rroughs/B6500_6700/
  66. Burroughs B8500 (original) documentation
    http://www.bitsavers.org/pdf/bu­rroughs/B8500/
  67. General Electric GE-400
    http://www.feb-patrimoine.com/PROJET/ge400/ge-400.htm
  68. GE-400 Time-sharing information systems:
    http://www.computerhistory­.org/collections/accession/102646147
  69. PDP-10
    http://en.wikipedia.org/wiki/PDP-10
  70. GNU Readline
    http://web.mit.edu/gnu/doc/html/rlman.html

Autor článku

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