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.
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).
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.
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.
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).
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.
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.
Emacs-emulaatio.
Useissa muissa editoreissa on mahdollista käyttää emulaatiotilaa Emacsin kaltaiselle toiminnalle: