Emacs

Emacs (IPA: ) on tekstieditorien perhe, jotka ovat lähtöisin tai saaneet inspiraatiota ensimmäisestä tämän nimisestä editorista. Keskeinen piirre on ohjelmoitava laajennettavuus.

Ensimmäisen Emacs kirjoitettiin TECO-tekstieditorin laajennuskielellä DEC PDP-10 ja PDP-11 -koneille 1970-luvun puolessavälissä. Ensimmäinen Emacs Unixille oli Gosling Emacs, josta tuli kaupallinen Unipress Emacs. GNU Emacsin kirjoitti Richard Stallman, joka oli alkuperäisen TECO Emacsin pääkehittäjä, ja se on edelleen ylläpidetty.https://www2.lib.uchicago.edu/keith/tcl-course/emacs-tutorial.html

Emacs yhdessä Vi:n kanssa ovat kaksi suosittua klassista tekstieditoria, joita monet ohjelmoijat edelleen käyttävät.

GNU Emacsin oman interaktiivisen oppaan saa auki avaamalla Emacsin ja painamalla ensin näppäinyhdistelmän  ja sitten painamalla vielä . Vaihtoehtoisesti voi valita myös kohdan "Tutorial" GNU Emacsin aloitusnäytöltä.

Historia
Emacs periytyy TECO-editorin makrokokoelmista TECMAC ja TMACS, joista yhdistettiin EMACS (Editor MACroS) vuonna 1976. Ensimmäinen Emacs julkaistiin Incompatible Timesharing System (ITS) ja TOPS-20 (TWENEX) -käyttöjärjestelmille, jolloin se oli toteuttu PDP-10 assemblyllä. Samana vuonna ilmestyi Dan Weinrebin Lisp-kielellä tehty EINE (EINE Is Not EMACS).

TECO:sta tehtiin versio Multics-käyttöjärjestelmälle vuonna 1971. Vuoteen 1976 mennessä TECO:lle oli useita makropaketteja kuten TMACS ja TECMAC. Richard Stallman yhdisti makropaketit vuonna 1976, josta syntyi nimi EMACS.

1970- ja 1980-luvuilla julkaistiin Multics Emacs (1978) ja Gosling Emacs (1981). Multics Emacs oli kirjoitettu MacLispillä ja se myös käytti Lispiä laajennuskielenään. James Goslingin Gosling Emacs on kirjoitettu C:llä ja käyttää "Mocklisp"-kieltä laajennuskielenään.

Emacsista oli jo 1980-luvun alussa useita klooneja. Richard Stallman nimitti vuoden 1981 muistiossaan "AI Memo 519a" editoreja, jotka toteuttivat Emacsin toiminallisuuden vain pinnallisesti, kuten näppäinyhdistelmät, mutteivat laajennuskieltä, termillä "Ersatz EMACS" (korvike-Emacs).http://ftpmirror.your.org/pub/misc/bitsavers/pdf/mit/ai/aim/AIM-519A.pdfFAQ #ErsatzEMACS

Vuonna 1984 aloitettu GNU Emacs oli GNU-projektin ensimmäinen merkittävä ohjelma.
GNU Emacsista eriytyi vuonna 1991 XEmacs (aluksi nimellä Lucid Emacs).
XEmacsin kehitys oli pysähdyksissä vuosikymmenen, kunnes toukokuussa 2023 julkaistiin ensimmäinen beta-versio sitten vuoden 2013.Message-ID: <87jzx8e67l.fsf@parhasard.net>

Microemacs (myös kirjoitettu uEmacs, tai MicroEMACS) on eräs muunnos, jonka kehitti Dave Conroy vuonna 1985 tai 1986 henkilökohtaiseen käyttöön. MicroEmacsin siirsivät Amigalle Steve Wilhite ja George Jones, jotka julkaisivat korjauksia public domainiin. Editori toimitettiin AmigaOS:n mukana nimellä MEmacs.AmigaOS Manual, AmigaDOS Using the Editors, MEmacs
Kehitystä jatkoi Daniel M. Lawrence (1958–2010), joka julkaisi oman versionsa ilmaisohjelmana kieltäen kaupallisen käytön.
Linus Torvalds ylläpitää omaa MicroEmacsista muokattua versiota, joka perustuu Petri H. Kutvosen uEmacs/PK -versioon (joka pohjautuu Lawrencen versioon).https://git.kernel.org/pub/scm/editors/uemacs/uemacs.githttps://git.kernel.org/pub/scm/editors/uemacs/uemacs.git/tree/README
Eräs versio, jonka GNU hyväksyy vapaaksi ohjelmaksi, on Jasspa's MicroEmacs. Se perustuu Lawrencen Microemacsin versioon 3.8 vuodelta 1988. Ylläpitäjät Jon Green ja Steven Phillips saivat vuonna 2002 Lawrencelta luvan julkaista oma versionsa GPL:n alaisuudessa.http://www.jasspa.com/history.html 
MicroEmacs on toteutettu C-kielellä ja ei ole yhteensopiva muiden Emacsien kanssa nimestä huolimatta: MicroEmacsissa on samankaltaisuuksia Gosling EMACSiin, mutta muun muassa komennot ja avainsanat eroavat.

JOVE (Jonathan's Own Version of Emacs) on Jonathan Paynen versio Emacsista ilman Lispiä.

 Emacs-editorit 
 Muunnelmia 
Emacsista on useita muunnelmia. Näitä on luetteloitu Craig Finsethin ylläpitämässä Usenet FAQ:issa Emacs implementations, list of, regular post [long, FAQ], joka tuntee muunnelmia yli sata kappaletta.

GNU Emacsin muunnelmia ovat Aquamacs, Demacs, OEmacs, NTEmacs, Emacs For Mac OS X, Emacs for NeXTstep, Epoch, Meadow, MULE, TkEmacs, XfEmacs, Treemacs, Win-Emacs ja Leif. XEmacsin (joka perustuu GNU Emacsiin) muunnelmia ovat SXEmacs, InfoDock.

 Anthony's Editor (ae)
 Atto (Emacs-tyyppinen editori toteutettuna 2000 rivillä C-kieltä, perustuen Anthony's Editoriin)
 e (Jef Poskanzer, www.acme.com/software/e/ )
 MG (ennen MicroGnuEmacs), perustuu Dave Conroyn PD-versioonhttp://bxr.su/OpenBSD/usr.bin/mg/README
 Barry's Emacs, James Goslingin lähdekoodiin perustuva, jota kehitettiin sisäisesti DEC:illä vuodesta 1980, kunnes Barry Scott julkaisi ohjelman vuonna 1994.
 JOVE (Jonathan's Own Version of Emacs)
 MINCE (MINCE Is Not Complete Emacs)
 Zile (Zile is Lossy Emacs)https://savannah.gnu.org/projects/zile
 EINE (EINE is not Emacs), ZWEI (Zwei Was Eine Initially), Lisp-koneille josta kehittyivät Zmacs, SINE, TV
 Lem (kehitteillä oleva Common Lisp-ohjelmointikielellä toteutettu Emacs-klooni.)

 Emacs-emulaatio 
Useissa muissa editoreissa on mahdollista käyttää emulaatiotilaa Emacsin kaltaiselle toiminnalle:
 JOE (jmacs)
 JED
 Eclipse
 IntelliJ Idea

 Tunnettuja Emacsin käyttäjiä 
 Donald Knuthhttp://www.literateprogramming.com/clb93.pdf , s. 3
 Eric S. Raymondhttp://www.amazon.com/gp/product/1565921526/102-6210427-3807369?v=glance&n=283155
 Richard Stallmanhttps://www.gnu.org/gnu/rms-lisp.html

 Lähteet 

 Aiheesta muualla 

 Emacs-opas Linux.fi-wikissä
 Multics Emacs: The History, Design and Implementation 
 https://www.emacswiki.org/emacs/EmacsImplementations
 Emacs implementations, list of, regular post [long, FAQ