Emacs

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 20. prosince 2021; kontroly vyžadují 4 úpravy .
emacs
Typ Textový editor
Autor Richard Stallman , Guy Steel [d] a David Moon [d]
Vývojář Projekt GNU
Zapsáno v C a Emacs lisp [1]
Operační systém Křížová platforma
První vydání 1976 [2]
Hardwarová platforma multiplatformní
Nejnovější verze
Licence GNU GPL
webová stránka gnu.org/software/emacs/
 Mediální soubory na Wikimedia Commons

Emacs ( Imax, Emax , také Emax ) je rodina multifunkčních rozšiřitelných textových editorů .

Původní EMACS napsali v roce 1976 Richard Stallman a Guy Steel (anglicky) jako sadu maker pro úpravy ( anglicky  Editor MACroS ) pro editor TECO [4] [5] [6] [7] .

Historie [8] [9]

S nahrazením dálnopisů terminály získal textový editor TECO na počátku 70. let popularitu . Jeho nevýhodou bylo, že fungoval v příkazovém režimu. Každá akce (otevření souboru, zavření, uložení, zadání textu atd.) byla provedena příslušným příkazem editoru, což byl řetězec instrukcí.

V roce 1972 nebo 1974 (podle jiných zdrojů v roce 1976 ) navštívil Richard Stallman Stanford AI Lab, kde se setkal s textovým editorem E , který na něj udělal velký dojem. E umožňuje úpravy v reálném čase, kdy se obrazovka aktualizuje s každým stisknutím klávesy.

V roce 1972 Carl Mikkelsen (nebo Mikkelson) přidal do TECO funkci, která jej přepínala z příkazového režimu do editačního režimu v reálném čase, ve kterém byla obrazovka aktualizována každým stisknutím klávesy. Funkce byla pojmenována „Control-R“ podle kombinace kláves, která ji spustila. Richard Stallman upravil tuto funkci tak, aby byla efektivnější a zahrnovala možnost vyvolat makra, což umožnilo kombinacím kláves vyvolat příslušné příkazy TECO.

V roce 1978 vytvořil Multics Emacs Bernard Greenberg z Honeywell Cambridge Information Systems Lab , napsaný v MacLisp . Uživatelská rozšíření byla také napsána v Lisp . Volba Lisp poskytla větší flexibilitu než kdy předtím a následovala většina následných implementací Emacsu.

V roce 1981 vytvořil James Gosling Gosling Emacs , první Emacs běžící na UNIXu . To bylo psáno v C a rozšíření byla psána v Lisp dialektu volal Mocklisp .

V roce 1984 začal Richard Stallman vyvíjet novou implementaci Emacsu jako bezplatné alternativy k proprietárnímu Gosling Emacs. GNU Emacs byl prvním programem projektu GNU . Jádro editoru bylo napsáno v C , zatímco rozšíření byla napsána v Emacs Lisp . První verze GNU Emacs používaly některé z kódu Gosling Emacs, ale když byl Gosling Emacs prodán UniPress a stal se proprietárním, zdrojový kód GNU Emacs byl vyčištěn ze zdrojového kódu Gosling Emacs.

V roce 1991 se objevil fork Emacs od Lucid Inc. s názvem LucidEmacs. Byl založen na rané alfa verzi GNU Emacs 19. Následně byl přejmenován na XEmacs . Fork vydržel až do roku 2009, kdy byla vydána poslední stabilní verze XEmacs (poslední beta verze vyšla v roce 2013 [10] ). Ve skutečnosti byly všechny jedinečné vlastnosti této varianty Emacsu vráceny do hlavní větve GNU/Emacs.

V roce 2008 Richard Stallman odstoupil od přímé podpory vývoje GNU/Emacs. Hlavní vývojáře nahradili Stefan Monnier a Chong Yidong [11] .

V roce 2015 John Wiegley nahradil Stéphana Moniera jako hlavního vývojáře GNU/Emacs [12] .

Terminologie

Protože Emacs existuje již dlouhou dobu a původně fungoval pouze na textových terminálech, jeho terminologie přesně neodpovídá moderním okenním systémům. Základní specifické pojmy Emacs:

Hlavní vlastnosti

Základem ideologie Emacs jsou principy „vše v jednom“, rozšiřitelnost, uživatelské přizpůsobení a dokumentace.

"Vše v jednom"

Funkčnost Emacsu lze rozdělit do tří úrovní: základní, hlavní režim a pokročilé režimy. Kombinace těchto tří úrovní umožňuje provádět obrovské množství úkolů (včetně těch, které přímo nesouvisejí s editací textu), aniž byste museli opustit editor.

Základní funkce zahrnují základní operace manipulace s textem , které lze nalézt v libovolném editoru a které jsou jedinečné pro Emacs. To zahrnuje vkládání a mazání textu, pohyb v textu, otevírání a ukládání souborů atd. Co je jedinečné pro Emacs, je množství těchto operací a dostupnost téměř všech z klávesnice. Můžete se tedy například v textu pohybovat znak po znaku, po slovech, řádcích, stránkách, větách, odstavcích, vyvážených seznamech (tedy po výrazech uzavřených v závorkách), funkcích...

Hlavní režim Emacsu je určen typem editovaného souboru. Existují režimy pro různé programovací jazyky, textové značkovací jazyky ( HTML , TeX atd.), pro procházení adresářů, pro čtení a odesílání e-mailů a mnoho dalších. Hlavní režim určuje, jak se zvýrazní syntaxe, jak se zarovná kód pro programovací jazyky, speciální příkazy pro provádění běžně používaných operací atd. Hlavní režim může také přepsat základní textové prvky. Takže při editaci programů v C a podobných jazycích je jeden příkaz programu považován za větu. Přitom v komentářích má věta obvyklý textový význam.

Další režimy obvykle poskytují funkce nezávislé nebo slabě závislé na formátu upravovaného souboru. Na rozdíl od hlavního režimu, který je stejný pro jakýkoli buffer, není počet aktivních doplňkových režimů omezen. K dispozici jsou například režimy pro zvýraznění aktuálního řádku, neustálé zobrazování názvu aktuální funkce u textů programu, zvýraznění odpovídajících závorek a mnoho dalších.

Rozšiřitelnost

Emacs je napsán ve dvou jazycích: C a Emacs Lisp (Elisp, dialekt jazyka Lisp ). Samotný editor je interpret Elisp. Ve skutečnosti je většina Emacsu napsána v Elisp a lze si ho představit jako rozšíření hlavního programu.

Uživatelé mohou sami vytvářet části Emacsu, od jednotlivých funkcí až po nové hlavní režimy. Přitom můžete přepsat jakékoli funkce Elisp, včetně těch, které jsou součástí samotného editoru, a upravit funkčnost Emacsu odpovídající změnou některých funkcí.

Kromě velkého množství rozšíření zaměřených na psaní textu nebo vývoj programů existují balíčky pro Emacs, které plní funkce plnohodnotných aplikací pro čtení pošty a zpráv (například Gnus ), organizování osobního času a sledování informací , vytváření a poslech hudby, komunikace přes Jabber nebo IRC . Počet aplikací vytvořených pro Emacs je takový, že můžete úspěšně provádět mnoho úkolů, aniž byste opustili Emacs.

Kromě toho vám Emacs umožňuje předefinovat téměř jakoukoli klávesu – jak globálně, tak pro každý hlavní režim jednotlivě – což vám umožňuje přiřadit často používanou akci volné kombinaci kláves.

Řada her byla zabudována do Emacsu jako rozšíření, například Tetris ( M-x tetris) [13] .

Přizpůsobitelnost

Emacs je napsán s vědomím, že různí uživatelé mají různé preference. Různé možnosti úprav lze změnit pomocí proměnných Elisp. Kromě toho je pro pohodlí, stejně jako pro ty, kteří neznají Elisp, k dispozici konfigurační režim, kde lze hodnoty parametrů zadat do speciálních polí nebo vybrat ze seznamů. Emacs umožňuje nastavit různé hodnoty parametrů pro různé buffery. Proměnné hodnoty lze také uložit do souborů, takže můžete bez námahy upravovat soubory C se základním odsazením 2 mezery nebo 4 – tuto hodnotu lze jednoduše uložit do souboru.

Jak bylo zmíněno výše, Emacs si můžete přizpůsobit svým potřebám pomocí funkcí napsaných v jazyce Elisp, včetně přepsání stávajících. A konečně, Emacs poskytuje velmi výkonnou schopnost provádět libovolnou sadu funkcí, když jsou splněny určité podmínky. Takové funkce se přidávají k tzv. „trapům“ ( anglicky  hook  – past, past, hák). Pomocí "pastí" můžete "chytit" (zachytit) určité události (například zařazení jednoho nebo druhého režimu). Existuje dokonce tak výkonná funkce, jako je schopnost provádět funkce po každé změně vyrovnávací paměti.

Dokumentace

Emacs má rozsáhlou dokumentaci, včetně dokumentace pro Elisp. Ale rysem Emacsu je, že každá funkce nebo proměnná může být opatřena dokumentací, když je definována. Takovou dokumentaci lze zobrazit jednoduchým zadáním názvu funkce nebo proměnné.

Poznámky

  1. Časová osa Emacsu . Získáno 21. 5. 2009. Archivováno z originálu 4. 8. 2015.
  2. Stallman R. 7. History // EMACS  (anglicky) : The Extensible, Customizable Self-Documenting Display Editor - 1981. - S. 18.
  3. Vydán Emacs 28.2 – 2022.
  4. Bernard S. Greenberg. Multics Emacs: Historie, návrh a implementace (odkaz není k dispozici) . Archivováno z originálu 29. června 2013. 
  5. GNU Emacs FAQ (downlink) . Archivováno z originálu 29. června 2013. 
  6. Jamie Zawinski. Časová osa Emacsu . Získáno 21. 5. 2009. Archivováno z originálu 4. 8. 2015.
  7. Adrienne G. Thompson. MACSimizing TECO (nedostupný odkaz) . Archivováno z originálu 29. června 2013. 
  8. ↑ The Emacs Commonwealth archivováno 10. listopadu 2013.
  9. EmacsWiki: EmacsHistory . Datum přístupu: 13. října 2013. Archivováno z originálu 14. října 2013.
  10. Archivovaná kopie (odkaz není dostupný) . Staženo 22. září 2015. Archivováno 4. března 2016. 
  11. Re: Hledám nového správce nebo tým Emacsu . Seznam adresátů gnu.org. Získáno 23. února 2008. Archivováno z originálu 3. června 2011. ; viz také „Stallman o předání GNU Emacs, jeho budoucnosti a důležitosti nomenklatury“ Archivováno 23. května 2008 na Wayback Machine
  12. Emacs získává nového správce, když se Richard Stallman odhlásí . Získáno 28. září 2017. Archivováno z originálu 28. října 2017.
  13. režim skeeto/autotetris . GitHub. Získáno 19. prosince 2016. Archivováno z originálu 11. června 2018.

Odkazy