GNU Emacs 26.3 (GTK+) sürümünü gösteren bir ekran görüntüsü. Ekran ikiye bölünmüş; yukarıda *GNU Emacs* penceresi, aşağıda *scratch* penceresi gösterilmektedir.
Emacs, özellikle genişletilebilirlik yönünden birbirine benzeyen ve ilişkili metin düzenleyicilerin genel adıdır. Bu metin düzenleyicilerin en yaygını GNU Emacs olduğundan, sıklıkla GNU Emacs yerine kullanılır.
Tarihçe
İlk Emacs, 1970'lerde MIT Yapay Zeka Laboratuvarı'nda Richard M. Stallman tarafından bir satır düzenleyici olan TECO'ya makro kümesi olarak yazıldı. Kısa sürede yaygınlaşan ve bu şekilde büyüyen makrolar Guy Steele ve Stallman tarafından derlenip EMACS ismini aldı.
Unix'de çalışan ilk Emacs'i, Java programlama dilinin de yazarı olan James Gosling 1981 yılında geliştirdi. Gosling Emacs olarak anılan uygulama C'de yazılmış olmasına rağmen, kullanıcılara kolayca kişiselleştirme ve geliştirme imkânı veren Mocklisp isimli Lisp türevi betik dili destekliyordu.
1984'e kadar özgürce dağıtılan bu uygulamanın haklarının Gosling tarafından satılması, aynı kod ağacından başlayan Stallman'ın GNU Emacs isimli düzenleyicisinin eski kodlardan temizlenmesine sebep oldu. Benzer şekilde kendi uygulamasının da özgürlüğünü kaybetmesini istemeyen Stallman, GPL lisansını yazdı ve GNU Emacs, GPL ile lisanslanan ilk uygulama oldu.
1991'de, GPL lisansının özgürlüğünden faydalanan bazı diğer geliştiriciler Lucid Emacs'i türetti. Daha sonradan XEmacs ismini alan bu uygulama özgür yazılım tarihindeki en büyük çatallanmaya sebep oldu. GNU Emacs ve XEmacs, 2006 yılı itibarıyla halen kullanılmakta olan en yaygın iki emacs'dir.
Özellikleri
Emacs Lisp
GNU Emacs ile birlikte, Mocklisp'in yerini kimi zaman ELisp olarak kısaltılan Emacs Lisp almıştır. Yorumlanan bir dil olan Lisp türevi betik dili, birçok akranı gibi değişken işlevlere izin verir. Özellikle bu yeteneği Emacs'in geliştirilebilirliğine önemli katkıda bulunmasını sağlar. Zengin kütüphanesi ile birlikte, web tarayıcısından, e-posta istemcisine, çeşitli oyunlardan yapay zekaya kadar birçok uygulamanın yazılabilmesine imkân veren dil, Emacs'in basit bir metin düzenleyici olarak kalmayıp, teknik olarak bir işletim sistemi sınıfına girebilmesinin sebebidir.
Düzenleme kipleri
Çok amaçlı bir düzenleyici olan Emacs, dosya türünü düzenlerken yardımcı olacak kiplerle gelir. Bu kipler o dosya türüne özgü söz dizimi renklendirme, kelime tamamlama, otomatik girintileme (indentation) gibi birçok işlev ile düzenleme işini kolaylaştırır. Bunların yanı sıra yazım denetimi, yazı tipi şekillendirme, dosya türüne özel tuş ve komut tanımları, hata ayıklama görevleri kipler yardımıyla yapılabilir. Emacs ile dağıtılmayan birçok kip Emacs Lisp dosyası olarak internette bulunabilir.
Düzenli ifadeler
Emacs, karmaşık ara/değiştir işlemleri için oldukça zengin ve kullanışlı düzenli ifade desteği ile gelir.
Emacs bütün yaygın işletim sistemleri üzerinde derlenip, çalıştırılabilmektedir.
Belgeleme ve dil desteği
Emacs çok ayrıntılı ve gömülü belgelerle gelir. Arayüzü gibi bunlar da genelde İngilizcedir. Kullanım kılavuzu farklı dillere çevrilmişse de, ne arayüzü ne de çekirdek Emacs Lisp kütüphanesi hiçbir dile çevrilmemiştir.
Ayrıca bakınız
Vikikitapta bu konu hakkında daha fazla bilgi var: