Emacs - Vikipedi

Emacs
GNU Emacs 26.3 (GTK+) ekran görüntüsü
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.
Orijinal yazar(lar)David A. Moon,
Guy L. Steele Jr
Geliştirici(ler)Çeşitli açık kaynak ve ticari geliştiriciler
İlk yayınlanma1976 (48 yıl önce) (1976)[1][2]
Güncel sürüm27.1 / 11 Ağustos 2020 (4 yıl önce) (2020-08-11)[3]
Programlama diliLisp, C
İşletim sistemiLinux, Mac OS X, Windows
TürMetin düzenleyici

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.

İ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.

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

[değiştir | kaynağı değiştir]

Ç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

[değiştir | kaynağı değiştir]

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

[değiştir | kaynağı değiştir]

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

[değiştir | kaynağı değiştir]
Vikikitap
Vikikitap
Vikikitapta bu konu hakkında daha fazla bilgi var:
  1. ^ "Emacs Release Dates". 14 Ekim 2008 tarihinde kaynağından arşivlendi. Erişim tarihi: 12 Ağustos 2020. 
  2. ^ Zawinski, Jamie (21 Haziran 2005). "Emacs Timeline". 4 Ağustos 2015 tarihinde kaynağından arşivlendi. Erişim tarihi: 12 Ağustos 2020. 
  3. ^ Nicolas, Petton. "Emacs 27.1 released". 11 Ağustos 2020 tarihinde kaynağından arşivlendi. Erişim tarihi: 12 Ağustos 2020. 

Dış bağlantılar

[değiştir | kaynağı değiştir]