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] .
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] .
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:
Základem ideologie Emacs jsou principy „vše v jednom“, rozšiřitelnost, uživatelské přizpůsobení a dokumentace.
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.
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] .
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.
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é.
emacs | ||||||
---|---|---|---|---|---|---|
Implementace |
| |||||
Režimy | ||||||
přístroj | ||||||
jiný |
| |||||
|
Textové editory ( seznam ) | |
---|---|
Unix / Linux | |
DOS | |
Okna | |
Víceplatformní | |
SDK | |
Funkce |
Projekt GNU | ||
---|---|---|
Příběh | ||
licence |
| |
Software _ |
| |
Osobnosti |
| |
Další témata |
|