Emacs

tekstieditori perhe

Emacs on tekstieditorien perhe, jotka ovat lähtöisin tai saaneet inspiraatiota ensimmäisestä tämän nimisestä editorista. Keskeinen piirre on ohjelmoitava laajennettavuus.[2]

Emacs
Kehittäjä GNU
Kehityshistoria
Vakaa versio 29.4 ()[1]
Tiedot
Ohjelmistotyyppi tekstieditori
Alusta alustariippumaton
Aiheesta muualla
Verkkosivusto
Versiohallinta

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.[3]

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

Historia

muokkaa

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

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

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.[4]

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).[7][8]

Vuonna 1984 aloitettu GNU Emacs oli GNU-projektin ensimmäinen merkittävä ohjelma.[9] GNU Emacsista eriytyi vuonna 1991 XEmacs (aluksi nimellä Lucid Emacs).[4][10][11] XEmacsin kehitys oli pysähdyksissä vuosikymmenen, kunnes toukokuussa 2023 julkaistiin ensimmäinen beta-versio sitten vuoden 2013.[12]

Microemacs (myös kirjoitettu uEmacs, tai MicroEMACS) on eräs muunnos, jonka kehitti Dave Conroy vuonna 1985 tai 1986 henkilökohtaiseen käyttöön.[13] MicroEmacsin siirsivät Amigalle Steve Wilhite ja George Jones, jotka julkaisivat korjauksia public domainiin.[14] Editori toimitettiin AmigaOS:n mukana nimellä MEmacs.[15] Kehitystä jatkoi Daniel M. Lawrence (1958–2010), joka julkaisi oman versionsa ilmaisohjelmana kieltäen kaupallisen käytön.[14] Linus Torvalds ylläpitää omaa MicroEmacsista muokattua versiota, joka perustuu Petri H. Kutvosen uEmacs/PK -versioon (joka pohjautuu Lawrencen versioon).[16][17] 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.[18] 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.[14][16]

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

Emacs-editorit

muokkaa

Muunnelmia

muokkaa

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-versioon[20]
  • 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)[19]
  • MINCE (MINCE Is Not Complete Emacs)
  • Zile (Zile is Lossy Emacs)[21]
  • EINE (EINE is not Emacs), ZWEI (Zwei Was Eine), Lisp-koneille josta kehittyivät Zmacs, SINE, TV

Emacs-emulaatio

muokkaa

Useissa muissa editoreissa on emulaatiotila Emacsin kaltaiselle toiminnalle:

Tunnettuja Emacsin käyttäjiä

muokkaa

Lähteet

muokkaa
  1. Emacs 29.4 released. Tieto on haettu Wikidatasta.
  2. A Tutorial Introduction to Emacs www2.lib.uchicago.edu. Viitattu 31.12.2017.
  3. https://www2.lib.uchicago.edu/keith/tcl-course/emacs-tutorial.html
  4. a b c d e Jamie Zawinski: Emacs Timeline. jwz.org. 29.10.2007. Viitattu 9.9.2019. (englanniksi)
  5. a b c d Bernard S. Greenberg: Multics Emacs: The History, Design and Implementation multicians.org. 1979, 1996. Viitattu 9.9.2019. (englanniksi)
  6. Peter H. Salus: Chapter 4. A Tale of Two Editors (Osa verkossa julkaistua kirjaa The Daemon, the Gnu and the Penguin) 22.4.2005. Groklaw. Arkistoitu Viitattu 11.9.2019. (englanniksi)
  7. http://ftpmirror.your.org/pub/misc/bitsavers/pdf/mit/ai/aim/AIM-519A.pdf
  8. FAQ #ErsatzEMACS
  9. Steven J. Vaughan-Nichols: The 10 oldest, significant open-source programs 13.1.2013. ZDnet. Viitattu 9.9.2019. (englanniksi) 
  10. Jamie Zawinski: The Lemacs/FSFmacs Schism. jwz.org. 2000. Viitattu 9.9.2019. (englanniksi)
  11. XEmacs vs. GNU Emacs xemacs.org. Viitattu 9.9.2019. (englanniksi)
  12. Message-ID: <87jzx8e67l.fsf@parhasard.net>
  13. Jasspa's MicroEmacs jasspa.com. Viitattu 9.9.2019. (englanniksi)
  14. a b c MicroEMACS EDM/2. Viitattu 9.9.2019. (englanniksi)
  15. AmigaOS Manual, AmigaDOS Using the Editors, MEmacs
  16. a b https://git.kernel.org/pub/scm/editors/uemacs/uemacs.git
  17. https://git.kernel.org/pub/scm/editors/uemacs/uemacs.git/tree/README
  18. http://www.jasspa.com/history.html
  19. a b Seth Kenlon: By Jove! It's a lightweight alternative to Vim opensource.com. 4.1.2017. Viitattu 9.9.2019. (englanniksi)
  20. http://bxr.su/OpenBSD/usr.bin/mg/README
  21. https://savannah.gnu.org/projects/zile
  22. http://www.literateprogramming.com/clb93.pdf (Arkistoitu – Internet Archive), s. 3
  23. http://www.amazon.com/gp/product/1565921526/102-6210427-3807369?v=glance&n=283155
  24. https://www.gnu.org/gnu/rms-lisp.html

Aiheesta muualla

muokkaa
  NODES
Idea 1
idea 1
INTERN 1
Project 1