Emacs ialah sebuah familipenyunting teks yang mempunyai ciri istimewa yakni kebolehpanjangan. Satu manual memerikan perisian penyunting ini sebagai "satu penyunting tampilan masa sebenar yang boleh dipanjangkan, diubah suai, dan mendokumentasi diri."[1] Pembangunan bermula pada pertengahan tahun 1970-an dan kekal aktifsetakat 2012[kemas kini]. Emacs memiliki lebih daripada 2,000 perintah yang terbina dalam dan membolehkan penggunanya menggabung perintah-perintah ini ke dalam makro bagi menjalankan kerja secara automatik, khususnya dengan penggunaan Emacs Lisp, satu varian bahasa pengaturcaraanLisp.
Emacs asal terdiri daripada satu setEditor MACroS buat penyunting TECO. Ia ditulis pada tahun 1976 olehRichard Stallman. Stallman menulis Emacs mula-mulanya denganGuy L. Steele, Jr.,[2][3][4][5] berilhamkan sepasang penyunting makro-TECO, TECMAC dan TMACS yang ditulis Steele, Dave Moon, Richard Greenblatt, Charles Frankston, dan lain-lain.[6]
Emacs menjadi pesaing utamavi dalam "perang penyunting" yang wujud dalam budayaUnix. Dalam bahasa Inggeris, perkataan "emacs" dimajmukkan kepadaemacsen sebagai analogi kepadaboxen.[7]
Versi Emacs yang paling popular dan paling banyak diport ialahGNU Emacs, perisian yang dibina Stallman bagiProjek GNU.[8] Satu versi yang biasa digunakan juga ialahXEmacs, yang diserpihkan daripada GNU Emacs pada tahun 1991. Seperti GNU Emacs, XEmacs kekal serasi dengan dan masih menggunakan Emacs Lisp.
Stallman mula membangunkan GNU Emacs pada tahun 1984 dengan niat mewujudkan pilihanperisian bebas kepada Gosling Emacs. Pada awalnya, Gosling Emacs menjadi asas GNU Emacs, tetapi beliau menggantikan pentafsir Mocklisp dengan pentafsir Lisp tulen. Usaha ini memerlukan penggantian kod dengan kod yang baharu, dan GNU Emacs menjadi projek pertama yang dikeluarkan Projek GNU, yang sendirinya baharu bertapak. GNU Emacs ditulis dalam C dan menyediakanEmacs Lisp (yang sendirinya ditulis dalam C) sebagai bahasa pemanjangan. Versi 13, versi awam pertama, dibuat pada 20 Mac 1985. Versi yang diledarkan secara meluas pada lewat tahun 1985 ialah 15.34—Versi 2 hingga 12 tidak pernah wujud.
GNU Emacs kemudiannya diport kepadaUnix. Oleh sebab ia memiliki lebih kemudahan, terutamanya pentafsir Lispnya yang membolehkan kepemanjangan program berbanding Gosling Emacs, GNU Emacs menggantikan Gosling Emacs sebagai penyuntingde facto dalam sistem-sistem Unix.
Satu kecacatan keselamatan dalam subsisteme-mel GNU Emacs telah membenarkan sistem e-mel dieksploitasi Markus Hess yang berjaya menggodam program bagi mendapatkan statussuperuser pada komputer-komputer Unix.[9]
Kerja membangunkan GNU Emacs agak tertutup sehingga tahun 1999, sehinggalah ia menjadi contoh gaya pembangunan "Cathedral" yang diperikan dalam bukuThe Cathedral and the Bazaar karanganEric Raymond. Semenjak 1999 projek dibangunkan beramai-ramai dan sekarang pembangunannya menggunakan sistemSistem Kawalan Versi yang teragih (DVCS) .
Richard Stallman kekal menjadi penyenggara GNU Emacs mahupun beliau mengambil cuti daripada tugas penyeggaraan. Pada tahun 2008, tugas penyenggaraan diserahkan kepada Stefan Monnier and Chong Yidong.[10]
Tawan skrin menunjukkan kebolehan Emacs menanda teks dan memaparkan dua skrin menyunting serta kalendar dalam satu tetingkap.
Emacs ialah sebuahpenyunting teks dan bukanpemproses perkataan. Justeru ia tertumpu kepada pengendalian cebisan teks dan tidak kepada pengendalian rupa taip ("fon") aksara, walaupun Emacs berkebolehan melakukan fungsi ini. Emacs menyediakan perintah bagi mengendali perkataan dan paragraf (membuang, mengalih, merentasi, dan sebagainya), menanda sintaks agar penulisan dan pembacaan kod lebih mudah, dan juga penyediaan "makro papan kekunci" bagi menjalankan himpunan perintah menyunting yang ditetapkan pengguna.
Emacs berfungsi sebagai penyunting teks moden yang lain—ia sebuah penyunting "dalam masa nyata" dalam erti kata apa jua yang disunting akan kelihatan di skrin.
Emacs juga mengandungi sebuah tutorial yang terbina dalam. Apabila Emacs dimulakan tanpa sebarang fail yang perlu disunting, ia memaparkan petunjuk bagaimana tugas penyuntingan mudah dapat dilakukan sekiranya tutorial itu dipanggil oleh pengguna.
GNU Emacs dilesenkan dengan lesenGPL; justeru kod sumber, termasuk komponen C dan Emacs Lisp, terdapat bebas bagi diperiksa, diubahsuai dan diagihkan.
Telah menjadi polisi GNU Emacs (dan banyak lagi pekej perisian GNU) hanya akan menerima sumbangan kod dengan syarat pemegang hak cipta bersetuju memberi hak kepadaYayasan Perisian Bebas (FSF) walaupun satu pengecualian berlaku dengan perisian MULE (perisian yang mengendalikanUnicode dan kod-kod termaju berkaitan skrip bahasa-bahasa selain bahasa Inggersi)[11] kerana pemegang hak cipta, Kerajaan Jepun, tidak dapat memberikan hak. Namun, polisi ini tidak diguna pakai dengan kod yang kurang daripada 10 baris, atau membetulkan pepijat. Polisi ini diambil agar FSF dapat mempertahankan perisian di hadapan mahkamah sekiranya lesencopyleftnya dicabul.
Ciccarelli, Eugene (1978).An Introduction to the Emacs Editor. Cambridge, Massachusetts: MIT Artificial Intelligence Laboratory. AIM-447.PDFHTML
Stallman, Richard M. (1979, updated 1981).EMACS: The Extensible, Customizable, Self-Documenting Display Editor. Cambridge Massachusetts: MIT Artificial Intelligence Laboratory. AIM-519A.Check date values in:|year= (bantuan)PDF[pautan mati kekal]HTML