Emacs Nedir? GNU Projesinin Kalbinden 2026’ya Uzanan Yolculuk

Hızlı Bakış

Emacs, 1976'da Richard Stallman'ın MIT'de geliştirdiği bir metin düzenleme aracıdır. Bu editör, TECO makrolarından doğup GNU Emacs'a dönüşen güçlü bir platformdur. Emacs Lisp yorumlayıcısı sayesinde kod yazma ve iş planlama gibi görevleri tek çatıda birleştiriyor. Yerleşik eğitim kılavuzu ve çoklu dil desteğiyle her seviyeden kullanıcıya hitap ediyor. Üstelik binlerce eklenti ile çalışma ortamınızı sınırsızca kişiselleştiriyorsunuz. Böylece yazılım geliştiriciler ve yazarlar için vazgeçilmez bir üretkenlik aracı haline geliyor.

Bir metin düzenleyici düşünün. 1976’dan beri yaşıyor. Hala her gün on binlerce geliştiricinin ekranında parlıyor. Üstelik rakipleri gelip geçerken o dimdik ayakta. İşte karşınızda efsanevi Emacs. GNU projesinin kalbi, özgür yazılım dünyasının simgesi. Bu yazı size sadece bir araç tanıtmayacak. Size bambaşka bir çalışma felsefesinin kapısını aralayacak.

Yıllardır sahada sayısız editör denedim. Her biri bir dönem popüler oldu. Kimi hızıyla büyüledi, kimi sadeliğiyle. Ama hiçbiri bu metin düzenleyicinin sunduğu derinliği veremedi. Zira burada mesele sadece kod yazmak değil. Mesele aklınızdaki her işi tek bir ortamda birleştirmek.

Günümüzde VS Code, JetBrains araçları yükselişte. Peki neden hala bu kadar insan GNU Emacs kullanıyor? Cevap basit. Çünkü bu aygıt bir editör değil, bir işletim sistemi adeta. İçinde e-posta okur, müzik dinler, takvim yönetirsiniz. Hatta pencere yöneticisi olarak bile kullanabilirsiniz.

Özellikle 2025 ve 2026 yıllarında gelen yenilikler işleri daha da kızıştırdı. Native compilation sayesinde artık eskisinden katbekat hızlı. Tree-sitter entegrasyonu sözdizimi renklendirmeyi modern IDE seviyesine taşıdı. Üstelik yerleşik JSON desteği ve LSP protokolüyle çağ atladı.

Bu kapsamlı rehberde size her şeyi anlatacağım. Kurulumdan konfigürasyona, eklentilerden yapay zeka entegrasyonuna kadar. Ayrıca rakipleriyle acımasız bir karşılaştırma da yapacağız. Amacım sizi ikna etmek değil, doğru kararı vermenizi sağlamak. Özgür yazılım felsefesini anlamanızı istiyorum.

Kahvenizi alın, rahatınıza bakın. Sohbetimiz uzun ama her dakikasına değecek. Zira bu anlatacaklarım sıradan bir “en iyi 10 eklenti” listesi değil. Bu bir yaşam tarzının hikayesi.

Emacs Editör Tanımı, Özellikleri ve Kullanımı

Emacs Nedir? Kısa ve Alıntılanabilir Tanım

En yalın haliyle söyleyeyim. Emacs özelleştirilebilir, genişletilebilir, kendini belgeleyen bir metin düzenleyicidir. Ama bu tanım haksızlık olur.

Zira bu ortam tam teşekküllü bir geliştirme alanı sunar. Bunun yanı sıra e-posta istemcisi, dosya yöneticisi ve daha fazlasını barındırır.

Richard Stallman 1976’da MIT yapay zeka laboratuvarında temellerini attı. O günden beri sürekli gelişiyor. GNU Emacs sürümü ise 1985’te doğdu. GPL lisansının ilk uygulandığı yazılım olma gururunu taşır. Yani bu araç sadece kod değil, bir özgürlük manifestosudur.

Bu ekosistemin temelinde GNU/Linux ekosistemi yatıyor. Açık konuşmak gerekirse özgür yazılım dünyasını kavramak için bu bütünlüğü görmelisiniz. Her iki proje de kullanıcıya kontrol vermeyi hedefliyor.

Günlük hayatta bu kod editörü size ne sunar? Öncelikle sonsuz özelleştirme. Her tuşu, her rengi, her davranışı değiştirebilirsiniz. İkincisi evrensel entegrasyon. Git’ten Docker’a, Python’dan C’ye her şey burada çalışır. Üçüncüsü ise düz metin felsefesiyle gelen kontrol hissi. Verileriniz hiçbir kapalı formata hapsolmaz.

Şahsi tecrübeme göre asıl büyü şurada yatıyor. Başlangıçta dik öğrenme eğrisi sizi zorlar. Ancak bir kez aştığınızda geri dönüş imkansızlaşır. Parmaklarınız düşünmeden tuş kombinasyonlarını çalıştırır. Zihniniz arayüzle değil, işinizle meşgul olur.

İnternette çoğu kaynak bu sistemi “zor” diye etiketler. Oysa sahada edindiğim tecrübe farklı. Zor değil, sadece farklı bir zihniyet gerektiriyor. Alıştığınız kısayolları unutmanız, yeni bir dil öğrenmeniz lazım. Tıpkı yeni bir enstrüman çalmak gibi. Emeğinizin karşılığını fazlasıyla alırsınız.

EMACS İsminin Anlamı: ‘Editor MACroS’

İsim kökeni teknik ve mütevazı. Editor MACroS ifadesinin kısaltmasıdır. TECO editörü için yazılan makrolar zamanla bağımsız bir sisteme dönüştü. Richard Stallman bu makro koleksiyonuna bu ismi verdi. Sonradan anlamı katmanlı hale geldi.

Topluluk arasında esprili açılımlar da türedi. “Escape Meta Alt Control Shift” favorimdir. Bir diğeri “Eight Megabytes And Constantly Swapping”. 80’lerde bu şaka anlamlıydı. Günümüzde ise native compilation teknolojisi sayesinde bellek kullanımını optimize ettiler. Yine de espri mirası yaşıyor.

Aslında isim bize derin bir şey söylüyor. Bu sistem özünde makrolarla başladı. Yani kullanıcıların editörü kendi ihtiyaçlarına göre programlamasıyla. Bu felsefe bugün de aynen sürüyor. Her kullanıcı kendi çalışma ortamını inşa eder. Hiçbir kurulum birbirinin aynı değildir.

Emacs’ın Tarihçesi: 1970’lerden Günümüze Özgür Yazılım Devrimi

Hikaye 1972’de başlıyor. MIT yapay zeka laboratuvarında araştırmacılar TECO adlı bir editör kullanıyordu. TECO ham ve kullanışsızdı. Richard Stallman arkadaşlarının yazdığı makroları bir araya getirdi. Ortaya ilk Emacs çıktı.

Daha sonra bu sistem hızla yayıldı. Farklı üniversiteler kendi versiyonlarını geliştirdi. Ancak ticari baskılar arttı.

Stallman özgürlüğü korumak için 1984’te GNU projesini başlattı. GNU Emacs bu projenin ilk büyük eseri oldu. Aynı zamanda GPL lisansının doğuşuna tanıklık etti.

Günümüze uzanan bu yolculukta teknoloji devrimleri yaşandı. Grafik arayüzler geldi, fareler yaygınlaştı. Buna rağmen bu araç klavye merkezli kullanım felsefesinden ödün vermedi. Aksine GUI çağında bile terminal kökenlerini gururla taşıdı. Bu tutarlılık sadık kullanıcı kitlesinin temel sebebidir.

Terminal kökenleri aslında UNIX felsefesine dayanıyor. Her şey bir dosyadır mantığı burada da geçerli. Net şekilde ifade etmek gerekirse Emacs bu geleneği modern dünyaya taşıyor.

Aradan 40 yılı aşkın zaman geçti. Bugün hala aktif olarak geliştiriyorlar. Emacs 30 sürümünü 2025’te yayınladılar. Emacs 31 ise 2026’da planlıyorlar. Her sürüm yeni nesil özellikler getiriyor. Topluluk canlı, MELPA deposu her gün güncelleniyor.

Özgür yazılım tarihindeki yerini kimse tartışamaz. FSF’in kurucu taşı, GNU aracı zincirinin parçası. GCC, GDB, Bash ile birlikte anılan efsanevi bir isim. Özellikle GCC (GNU Compiler Collection) ile entegrasyonu efsanedir. Birlikte tam bir geliştirme ortamı oluştururlar.

Neticede bu tarih bize ne öğretir? Teknolojinin geçici, felsefenin kalıcı olduğunu. Kullanıcıya kontrol veren, özgürlüğü önceleyen yazılımlar ölmez. On yıllar geçse de ayakta kalır. Zira insanlar araçlarına hükmetmek ister, onlara mahkûm olmak değil.

GNU Emacs ve XEmacs Çatallanması: Özgür Yazılım Tarihinin En Büyük Ayrılığı

1991 yılında büyük bir kopuş yaşandı. Lucid şirketi kendi versiyonunu geliştirmek istedi. Ancak FSF bu kod katkılarını reddetti. Bunun üzerine XEmacs doğdu. İki proje yıllarca paralel ilerledi.

Geliştiriciler bu çatallanmayı aslında felsefi bir ayrılık olarak görüyordu. GNU kanadı merkezi kontrolü savunuyordu. XEmacs kanadı daha esnek bir geliştirme modeli istiyordu.

Teknik olarak XEmacs grafik arayüzlerde öndeydi. GUI widget’ları, font yönetimi daha moderndi. Buna rağmen topluluk zamanla GNU sürümünde yoğunlaştı.

XEmacs geliştirmesi 2009’da fiilen durdu. Ancak bıraktığı miras büyük. Birçok yeniliği GNU tarafına aktardılar. Bugün geriye dönüp baktığımda şunu görüyorum. Bu ayrılık özgür yazılım hareketinin olgunlaşma sancısıydı. Sağlıklı bir rekabet her iki tarafı da ilerletti.

2026 Perspektifi: Emacs 30, 31 ve Gelecek

Gelecek parlak ve heyecan verici. İşte son sürümlerle gelen ve planlanan öne çıkan yenilikler:

  • Native Compilation (GccEmacs): Elisp kodları artık doğrudan makine koduna derleniyor. Başlangıç süresi ve çalışma hızı gözle görülür biçimde arttı. Emacs 30 ile varsayılan hale geldi.
  • Tree-sitter Entegrasyonu: Sözdizimi ağacı tabanlı ayrıştırma artık yerleşik. Syntax highlighting ve kod katlama çok daha hassas. Geliştiriciler yeni major mode’ları tree-sitter gramerleriyle yazıyor.
  • Eglot Resmi LSP İstemcisi: LSP protokolü için harici pakete gerek kalmadı. Eglot artık çekirdeğin bir parçası. VS Code seviyesinde kod tamamlama ve analiz sunuyor.
  • Android Desteği: Emacs 30 ile birlikte Android’de doğrudan çalışıyor. Termux’a gerek kalmadan APK üzerinden tam teşekküllü deneyim mümkün.
  • use-package Çekirdekte: Paket yönetimi için artık harici kurulum gerekmiyor. use-package makrosu yerleşik olarak geliyor.
  • JSON Desteği: Sistem artık JSON ayrıştırma ve oluşturma işlemlerini C seviyesinde, yerleşik fonksiyonlarla yapıyor. Büyük JSON dosyalarında performans uçuyor.
  • SQLite Entegrasyonu: Yerleşik SQLite desteği eklediler. Org-roam gibi araçlar artık harici veritabanı gerektirmiyor.
  • Emacs 31 Beklentileri: Kullanıcılar yeni sürümden çoklu iş parçacığı desteği ve Wayland entegrasyonu bekliyor. Sonuç olarak daha hızlı bir başlangıç görüyoruz.

Emacs Ayırt Edici Özellikleri: Neden Hala Kullanılıyor?

Piyasada onlarca modern editör var. Üstelik birçoğu ücretsiz. Yine de bu araç benzersiz bir yerde duruyor. Sebebi ne? Cevap şu: Hiçbir rakip aynı genişletilebilirlik seviyesini sunamaz. Hiçbiri size aracı tamamen yeniden yazma özgürlüğü vermez.

Buradaki fark felsefeden geliyor. Diğer editörler önce bir çözüm sunar, sonra özelleştirmeye izin verir. Oysa bu kod editörü önce bir platform sunar. Siz çözümü kendiniz inşa edersiniz. Bu yaklaşım başlangıçta zaman alır. Ancak sonuç tamamen size özel bir ortamdır.

Ayrıca kendini belgeleyen sistem olması eşsiz bir avantaj. Herhangi bir fonksiyonun ne işe yaradığını anında sorgulayabilirsiniz. describe-function ve describe-key komutlarıyla. İnternete bağlanmanıza gerek kalmaz. Dokümantasyon editörün içinde yaşar.

Bir diğer ayırt edici özellik tampon yönetimidir. Açtığınız her dosya, her çıktı, her pencere bir tampondur. Buffer management bu kadar merkezi olan başka araç yoktur.

Window management ise ekranınızı dilediğiniz gibi bölmenizi sağlar. Bir yanda kod, diğer yanda terminal, öte yanda dokümantasyon açarsınız.

Son olarak minibuffer ve mode line sistemleri. Tüm komutlar minibuffer üzerinden etkileşimli çalışır. Mode line ise anlık durumu gösterir.

Major mode dosya tipine özel davranış tanımlar. Minor mode ise ek özellikleri açıp kapamanızı sağlar. Bu mimari 40 yıldır neredeyse hiç değişmedi. Çünkü mükemmel çalışıyor.

Özellikle Vim kullanıcıları bu esnekliği gördüklerinde şaşırırlar. Modal editing dünyasından gelen biri için burası başka bir evrendir. Ancak Evil mode sayesinde Vim tuşlarını burada da kullanabilirsiniz. Yani kaybeden olmaz, herkes kazanır.

Emacs Lisp (Elisp): Editörün Kalbindeki Dil

Her şeyin merkezinde Lisp programlama dili yatıyor. Daha spesifik olarak Emacs Lisp, yani Elisp. Bu dil olmadan bu araç bir hiç. Sistem, tüm editör davranışlarını Elisp fonksiyonlarıyla tanımlar. Siz bir tuşa bastığınızda aslında bir Elisp fonksiyonunu tetiklersiniz.

Yıllar içinde birçok dille çalıştım. Python, JavaScript, C, Rust… Ama Elisp’in yeri ayrıdır. Öğrenmesi ilk bakışta tuhaftır. Parantezler sizi yorar, prefix notasyonu şaşırtır. Ancak bir hafta içinde alışırsınız. Sonrasında kod yazmak şiir yazmaya dönüşür.

Zira Lisp programlama dili makro sistemi benzersizdir. Kodu veri gibi işleyebilir, yeni sözdizimleri üretebilirsiniz. Bu özelleştirilebilirlik sayesinde editörü baştan yaratabilirsiniz.

Nitekim Doom ve Spacemacs gibi dağıtımlar bunun kanıtıdır. Mühendisler koca bir konfigürasyon çerçevesini tamamen Elisp makrolarıyla yazdı.

Başlangıç için mini bir örnek vereyim. Aşağıdaki kod satırı yazı tipini değiştirir: (set-face-attribute 'default nil :font "Fira Code" :height 140). Gördüğünüz gibi her şey bir fonksiyon çağrısıdır. Zamanla bu basit yapı taşlarıyla devasa sistemler kurarsınız.

Paket Yönetimi: MELPA, ELPA ve use-package ile Modern Emacs

Eskiden paket kurmak eziyetti. Elle indirir, manuel yüklersiniz. Şimdi ise MELPA ve ELPA depoları sayesinde her şey otomatik. Binlerce paket parmaklarınızın ucunda. Paket yöneticisi yerleşik olarak geliyor. Tek komutla arama, kurma, güncelleme yaparsınız.

Adım adım modern paket yönetimini kuralım:

  1. MELPA deposunu ekleyin: init.el dosyanıza şu satırları yazın:
    (require 'package)
    (add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t)
    (package-initialize)
  2. use-package ile paket tanımlayın: Artık çekirdekte yerleşik yani kurulum gerektirmez; hemen kullanmaya başlayın.
  3. İlk paketinizi yükleyin: Örneğin vertico için:
    (use-package vertico
      :ensure t
      :init (vertico-mode 1))
  4. Lazy loading ekleyin: :defer t veya :commands ile paketleri ihtiyaç anında yükleyin. Başlangıç süreniz uçar.
  5. Güncellemeleri yönetin: M-x package-list-packages ile listeyi açın. U tuşu işaretler, x tuşu günceller.

Şahsi tecrübem şu: straight.el kullanıyordum önceden. Ancak package-vc ve yerleşik use-package ile artık ihtiyaç kalmadı. Sistem yeterince olgunlaştı. Yeni başlayanlara vanilla deneyimi öneriyorum.

Performans Odaklı Özellikler: Native Compilation ve JSON Desteği

Hız konusunda devrim yaşanıyor. İşte öne çıkan performans özellikleri:

  • Native Compilation (gccemacs): Elisp byte kodu yerine makine koduna derleniyor. Büyük konfigürasyonlar 3-5 kat hızlı başlıyor.
  • Tree-sitter: C ile yazılmış artımlı ayrıştırıcı. Sistem, büyük dosyalarda bile sözdizimi renklendirmesini anında bitiriyor.
  • Dynamic module (emacs-module): C, Rust gibi dillerde yazılmış modüller doğrudan yüklenebiliyor. Performans kritik işler için ideal.
  • JSON Desteği: Yerleşik json-parse-buffer ve json-serialize fonksiyonları büyük API yanıtlarını saniyeler içinde işliyor.
  • Lazy Loading: use-package ile paketleri sadece ihtiyaç anında yüklerseniz başlangıç süreniz 1 saniyenin altına iner.
  • SQLite Yerleşik: org-roam gibi veritabanı yoğun paketler artık hafif ve hızlı.

Emacs ile Neler Yapılabilir? (Killer Features)

Çoğu insan bu aracı sadece bir kod editörü sanır. Oysa burası tam bir dijital yaşam alanıdır. Gelin en çarpıcı kullanım senaryolarına bakalım. Anlatacaklarım sizi şaşırtabilir.

Not almadan proje yönetimine, e-postadan müzik dinlemeye kadar her şey mümkün. Bu yetenekler “killer feature” yani rakiplerde olmayan öldürücü özelliklerdir. Üstelik hepsi birbiriyle entegre çalışır. Tek bir ortamda kalır, bağlam değiştirmezsiniz.

Dijital minimalizm akımı yükselişte. İnsanlar dikkat dağıtan araçlardan kaçıyor. Tam da bu noktada bu platform altın değerinde. Tüm işlerinizi tek bir konsol uygulamasında toplarsınız. Düz metin felsefesiyle verileriniz sonsuza kadar okunabilir kalır.

Org-mode: Dünyanın En Güçlü Düz Metin Aracı

Org-mode başlı başına bir ekosistem. Bu kadar güçlü bir düz metin biçimi görmedim. İşte sunduğu imkanlar:

  • Görev Takibi ve GTD: org-agenda ile günlük, haftalık planlar oluşturursunuz. TODO, DONE durumlarıyla görevlerinizi yönetirsiniz. Hatırlatıcılar ve son tarihler eklemek çok kolay.
  • Not Alma ve Zettelkasten: org-roam ile ikinci beyin inşa edersiniz. Zettelkasten yöntemiyle notlar arasında bağlantılar kurarsınız. Grafik görünümüyle bilgi ağınızı keşfedersiniz.
  • Akademik Yazım: org-ref, citar ve helm-bibtex ile referans yönetimi yaparsınız. LaTeX ve auctex entegrasyonuyla tez, makale yazarsınız. Pandoc ile Word, PDF, HTML çıktısı alırsınız.
  • Literate Programming: org-babel ile kod ve dokümantasyonu birleştirirsiniz. Python, R, Bash, SQL blokları aynı dosyada yaşar. Sonuçları anında görürsünüz.
  • Sunum Hazırlama: Org’dan Beamer sunumu üretmek için ox-beamer ihraç motoru gerekiyor. Ayrıca bir LaTeX dağıtımı (TeXLive gibi) kurmalısınız. Bu otomatik çalışan bir özellik değildir, ek kurulum ister.
  • Zaman Takibi: org-clock ile projelere harcadığınız süreyi kaydedersiniz. Haftalık raporlar çıkarırsınız. Freelance çalışanlar için fatura temeli oluşturur.

İnanın bana, Org-mode’a alıştıktan sonra Notion, Obsidian gibi araçlar size oyuncak gelir. Zira burada verileriniz gerçekten sizin. Hiçbir bulut hizmetine mahkum değilsiniz.

Magit: Git’in En İyi Arayüzü

Git kullanıyorsanız Magit’i denemeden çekinmeyin. Abartmıyorum; bu araç Git’in en iyi arayüzüdür, terminal veya GUI’den çok daha iyidir. Komut satırında kaybolmazsınız, tıklamalı arayüzlerin yavaşlığını yaşamazsınız.

Magit size Git’in tüm gücünü anlık, etkileşimli bir tamponda sunar. Stage etme, commit atma, push çekme, rebase yapma hepsi birkaç tuşla hallolur. En karmaşık işlemler bile görsel olarak önünüzdedir. Hangi satırın staged olduğunu anında görürsünüz. Hatta tek tek satırları stage edebilirsiniz.

Geliştiriciler Forge paketiyle GitHub ve GitLab entegrasyonunu da ekler. Pull request’leri, issue’ları editörünüzden yönetirsiniz. Tarayıcıya geçmeniz gerekmez. Yıllardır kullanıyorum, bağımlılık yapar.

EXWM (Emacs X Window Manager): Emacs’i Pencere Yöneticiniz Yapın

Bu özellik akılları yerinden oynatır. Bu ortamı tam teşekküllü bir pencere yöneticisi olarak kullanabilirsiniz. Evet, yanlış duymadınız. Linux masaüstünüzün yöneticisi olur.

EXWM’in sunduğu avantajlar:

  • Tekdüze Kısayollar: Tüm pencereleri Emacs tuşlarıyla yönetirsiniz. Tarayıcı, terminal, dosya yöneticisi hepsi aynı mantıkla çalışır.
  • Buffer Olarak Pencereler: Açık uygulamalar Emacs tamponu gibi davranır. Böylelikle Switch-to-buffer ile pencereler arası geçiş yaparsınız.
  • Programlanabilirlik: Pencere davranışlarını Elisp ile özelleştirebilirsiniz. Belirli pencereler için otomatik kurallar tanımlarsınız.
  • Klavye Merkezli Kullanım: Fareye neredeyse hiç ihtiyaç duymazsınız. Böylece bilek ve parmak sağlığınızı korursunuz.
  • Sanal Masaüstleri: Çoklu çalışma alanı desteği yerleşiktir. Projeleri ayrı masaüstlerinde organize edersiniz.

Ben iki yıl EXWM kullandım. Başlangıçta sabır ister, ancak verimi inanılmaz artırır. Eliniz klavyeden hiç kalkmaz.

Dired, Vterm, Projectile ve Diğer Vazgeçilmezler

Günlük kullanımda sürekli başvurduğum araçlar şunlardır:

  • Dired: Dosya yöneticisi. Kopyalama, taşıma, silme, toplu yeniden adlandırma hepsi klavyeden. Wdired modu ile dosya isimlerini tampon içinde düzenlersiniz.
  • Vterm: Tam teşekküllü terminal emülatörü. Tmux’tan daha hızlı, daha entegre. Metin tampon gibi davranır, kopyala yapıştır doğal akar.
  • Eshell: Elisp ile yazılmış kabuk. Unix komutlarını ve Elisp fonksiyonlarını aynı satırda karıştırırsınız.
  • Projectile: Proje yönetimi. Dosya arama, test çalıştırma, grep hepsi proje bağlamında. Ripgrep ve fzf entegrasyonu ile ışık hızında arama yaparsınız.
  • Tramp: Uzak sunuculara şeffaf erişim. SSH üzerinden dosya düzenlersiniz. Açıkçası sanki yerel dosyaymış gibi çalışırsınız.
  • Elfeed: RSS okuyucu. Blogları, haberleri takip edersiniz. Bundan dolayı tarayıcıda vakit kaybetmezsiniz.
  • Eww: Yerleşik web tarayıcısı. Metin tabanlıdır, hızlıdır. Dokümantasyon okumak için birebirdir.
  • Mu4e / Notmuch: E-posta istemcisi. Binlerce e-postayı saniyeler içinde indeksler. Offline çalışır, arama yıldırım hızındadır.
İpucu
Tramp kullanırken büyük projelerde Projectile ile birleştirin. Uzak sunucudaki kodu yereldeki kadar rahat yönetirsiniz. SSH config dosyanıza ControlMaster eklemeyi unutmayın. Üstelik bu yöntemle bağlantıları anında açarsınız.

Doom Emacs, Spacemacs ve Hazır Konfigürasyonlar: Başlangıç İçin En İyi Yol Hangisi?

Sıfırdan başlamak göz korkutucu olabilir. Neyse ki topluluk harika başlangıç setleri hazırlamış. Geliştiriciler bu setleri konfigürasyon çerçevesi olarak tanımlar.

Vanilla Emacs ile başlamak en öğretici yoldur. Ancak zamanınız kısıtlıysa hazır çerçeveler kurtarıcıdır. Gelin en popüler iki seçeneği ve birkaç alternatifi inceleyelim. Ardından seçim rehberi sunayım.

Doom Emacs: Hız ve Minimalizm Odaklı

Doom Emacs benim kişisel favorim. Bu sistemi Henrik Lissner geliştiriyor. Temel felsefesi hız, minimalizm ve pragmatizm. Gereksiz hiçbir şey yüklemez, sadece işinize yarayanı sunar.

Öne çıkan özellikleri:

  • Başlangıç Süresi: Kapsamlı lazy loading sayesinde 0.8-1.5 saniyede açarsınız. Yüzlerce paketle bile hızlı kalır.
  • Evil Mode Odaklı: Varsayılan olarak Vim tuşlarıyla gelir. Modal editing sevenler için idealdir.
  • Modül Sistemi: İhtiyacınız olan dilleri ve araçları seçersiniz. Fazlasını yüklemezsiniz.
  • Leader Tuşu: Space tuşu leader olarak çalışır. Böylece mnemonic kısayolları hızlıca öğrenirsiniz.
  • Kapsamlı Dokümantasyon: Her modülün açıklaması, kısayol haritası hazırdır.

Doom ile başlamak bence en akıllıca seçimdir. Hızlı öğrenir, üretken olursunuz. Sonra yavaş yavaş kendi konfigürasyonunuzu inşa edersiniz.

Spacemacs: Mnemonic Kısayollar ve Kapsamlı Dokümantasyon

Spacemacs topluluk tarafından geliştirilen dev bir çerçevedir. Hedefi Emacs’i herkes için erişilebilir kılmaktır. Özellikle Vim’den geçiş yapanları hedefler.

Spacemacs’in güçlü yanları:

  • Katman Sistemi (Layers): Her dil ve araç bir katmandır. Bir satırla ekleyip çıkarırsınız.
  • Mnemonic Kısayollar: Tüm komutlar mantıksal gruplara ayrılmıştır. Hangi tuşun ne yapacağını tahmin edebilirsiniz.
  • Hazır Konfigürasyon: Kurar kurmaz tam donanımlı bir IDE elde edersiniz. Hiçbir ayar yapmanız gerekmez.
  • Geniş Topluluk: Sorunlarınıza hızlıca çözüm bulursunuz. Dokümantasyon çok detaylıdır.
  • Güzel Arayüz: Varsayılan tema ve modeline oldukça çekicidir. İlk izlenim mükemmeldir.

Dezavantajı ise başlangıç süresinin Doom’a göre daha uzun olmasıdır. Bunun yanı sıra sistem çok fazla paket yükler. Üstelik bu paketlerin bazılarını hiç kullanmazsınız.

Doom vs Spacemacs: Hangisini Seçmelisiniz?

KriterDoom EmacsSpacemacs
Başlangıç Süresi0.8-1.5 saniye2-5 saniye
FelsefeMinimal, hızlı, pragmatikKapsamlı, erişilebilir
Öğrenme EğrisiOrtaOrta-düşük
ÖzelleştirmeKolay, modülerKolay, katmanlı
Varsayılan KısayolEvil (Vim)Evil (Vim)
Dokümantasyonİyi, özÇok iyi, detaylı
ToplulukBüyük, aktifÇok büyük

Karar vermek için şu kuralı uygulayın. Hız sizin için öncelikliyse Doom’u seçin. Kapsamlı dokümantasyon ve sorunsuz başlangıç istiyorsanız Spacemacs’i seçin. İkisi de pişman etmez. Başlangıç rehberi olarak ikisini de iki hafta denemenizi öneririm.

Diğer seçenekleri de anmalıyım. Centaur Emacs Çin topluluğunda popülerdir. Prelude ve Better-defaults ise hafif başlangıçlar sunar. Deneyimli kullanıcılar genelde Vanilla Emacs ile kendi konfigürasyonlarını inşa eder. Bu yol uzun ama en öğretici yoldur.

Emacs ve Yapay Zeka: GPTel, Copilot ve LLM Entegrasyonu

2026 yılındayız. Yapay zeka artık her yerde. Bu araç da bu devrime ayak uydurdu. Üstelik açık kaynak felsefesine uygun biçimde. Verileriniz sizin kontrolünüzde kalır. Yani bu bilgileri hiçbir şirkete göndermez.

Emacs içinde yapay zeka kullanımı hızla olgunlaşıyor. Birkaç yıl önce basit tamamlamalar vardı. Şimdi ise tam teşekküllü sohbet, kod üretimi ve analiz mevcut. Gelin en iyi araçları inceleyelim.

GPTel Kurulumu ve Kullanımı: ChatGPT’yi Emacs’e Getirin

GPTel şu an en popüler yapay zeka paketidir. Çoklu sağlayıcı desteği sunar. OpenAI, Anthropic, Ollama hepsiyle çalışır. Verilerinizi nereye göndereceğinizi siz seçersiniz. Bu kontrol özgürlüğü paha biçilmezdir.

Kurulumu adım adım yapalım:

  1. Paketi yükleyin:
    (use-package gptel
      :ensure t
      :config
      (setq gptel-api-key "sizin-api-anahtarınız"))
  2. Bir sohbet tamponu açın: M-x gptel yazın. Karşınıza sohbet arayüzü gelir.
  3. Soru sorun: Doğrudan yazmaya başlayın. Enter ile gönderin, yanıt akıp gelir.
  4. Kod bloklarıyla etkileşim: Yanıttaki kod bloklarını doğrudan çalıştırabilir, düzenleyebilirsiniz.
  5. Bağlam ekleyin: Açık dosyayı, seçili bölgeyi bağlam olarak ekleyebilirsiniz.

Günlük iş akışımda bu aracı sürekli kullanıyorum. Kod inceleme, regex yazma, dokümantasyon tarama gibi işlerde harika. Üstelik tüm sohbet geçmişi düz metin olarak saklanıyor. Git ile sürümleyebilirsiniz.

Copilot.el ile Otomatik Kod Tamamlama

GitHub Copilot artık Emacs’te de çalışıyor. copilot.el paketi sayesinde akıllı kod tamamlama doğrudan editörünüze gelir. Kurulumu basit, kullanımı sezgiseldir.

Yazdığınız koda göre bağlamsal öneriler sunar. Bir fonksiyon yazarken sonraki satırları tahmin eder. Sekme tuşuyla kabul edersiniz. Yanlış önerileri hızlıca reddedersiniz. Özellikle boilerplate kodlarda zaman kazandırır.

Şahsi tecrübem şu: Tamamen Copilot’a güvenmek tehlikeli. Önerileri eleştirel gözle incelemek şart. Yine de doğru kullanıldığında üretkenliği belirgin biçimde artırır. Özellikle yeni bir dil öğrenirken sözdizimi rehberi gibidir.

Diğer Yapay Zeka Araçları ve Gelecek Perspektifi

Piyasa hareketli, yeni araçlar sürekli çıkıyor. İşte takip ettiğim diğer çözümler:

  • llm.el: Çoklu LLM sağlayıcısına tek arayüz sunar. Yerel modellerle de çalışır. Ollama entegrasyonu ile internetsiz kullanım mümkündür.
  • chatgpt-shell: Doğrudan ChatGPT API’sine bağlanır. Shell tamponu gibi davranır. Hızlı soru-cevap için idealdir.
  • org-ai: Org-mode içinde yapay zeka kullanımı. Blokları otomatik tamamlar, metinleri özetler. Not alma sürecinizi hızlandırır.
  • Emacspeak: Görme engelliler için konuşma sentezi. Yapay zeka ile birleşince etkileşim çok daha doğal hale geliyor.
  • Gelecek: Geliştiriciler yerleşik LLM desteği, akıllı kod dönüşümleri ve bağlamsal yardım sistemi sunmayı hedefliyor. Açık kaynak modeller güçlendikçe entegrasyon derinleşecek.

Emacs vs Rakipleri: Vim, VS Code ve Modern IDE’ler

Editör savaşları efsanedir. Herkes kendi aracını savunur. Ancak bu karşılaştırmayı objektif yapacağım. Fanatiklikten uzak, verilere dayalı. İşte bu kod editörü ile rakiplerinin dürüst muhasebesi.

Öncelikle şunu belirteyim. Her aracın bir amacı ve hedef kitlesi var. En iyi diye bir şey yoktur. Sadece sizin iş akışınıza en uygun olan vardır. Bu nedenle karşılaştırmaları okuyun, sonra kendiniz deneyin. Kararı siz verin.

Emacs mı Vim mı? Modal Editing vs Non-Modal

Bu iki editör arasındaki rekabet 30 yılı aştı. Aslında Vim ve GNU Emacs farklı tasarım felsefelerini temsil eder. İşte detaylı karşılaştırma:

ÖzellikEmacsVim
Düzenleme ModeliNon-modal (varsayılan)Modal editing
Genişletme DiliElisp (tam programlama dili)Vimscript / Lua
Başlangıç Hızı0.5-3 saniye (daemon ile anlık)0.1-0.3 saniye
Eklenti Sayısı5000+ (MELPA)3000+
IDE Benzeri ÖzellikYerleşik (Magit, Dired, Org)Eklentilerle
Öğrenme EğrisiDik öğrenme eğrisiDik ama kısa
Tuş KombinasyonlarıÇoklu tuş (chord)Modal (Normal/Insert)

Dikkat edin, bu araçta Evil mode ile Vim tuşlarını birebir kullanabilirsiniz. Yani Emacs’in gücünü Vim’in hızlı düzenleme modeliyle birleştirirsiniz. Bu hibrit yaklaşım en iyi iki dünyayı sunar. Yıllardır bu şekilde çalışıyorum, mükemmel.

VS Code mu Emacs mı? Hız, Eklenti Zenginliği ve Öğrenme Eğrisi

VS Code günümüzün en popüler editörü. Microsoft’un desteği, devasa eklenti pazarı ve düşük giriş bariyeriyle öne çıkıyor. Peki bu karşılaştırma nasıl bir sonuç verir?

KriterEmacsVS Code
PerformansHafif, az kaynakElectron tabanlı, orta-ağır
Eklenti SistemiElisp, MELPAJavaScript, Marketplace
ÖzelleştirmeSınırsız, her şey değişirSınırlı, tema ve ayarlar
Klavye OdaklılıkTam klavye, fareden bağımsızFare ağırlıklı
Öğrenme Süresi2-6 ay1-7 gün
Entegre AraçlarE-posta, RSS, PDF, MüzikSadece geliştirme
Veri KontrolüTamamen sizdeTelemetri, bulut hesabı

VS Code hızlı başlangıç isteyenler için idealdir. Eğer takımınız VS Code kullanıyorsa direnmenin anlamı yoktur. Ancak uzun vadede bu metin düzenleyici size daha fazla kontrol ve verimlilik sunar. Karar sizin önceliklerinize bağlı.

Deneyim
Yıllarca kurumsal ortamlarda çalıştım. Takım arkadaşlarım VS Code kullanırken ben Emacs ile kod yazdım. Çıktı kalitem hiç düşmedi. Ancak pair programming seanslarında uyum zorluğu yaşadım. Bu nedenle takım normlarına saygı duymak önemli.

Emacs’e Nasıl Başlanır? (Kurulum, Temel Kısayollar, Config)

Başlangıç en kritik aşamadır. Yanlış adımlar sizi soğutabilir. Doğru yöntemle başlarsanız yolunuz açık olur. Size yılların tecrübesiyle en sağlam başlangıç rotasını çizeceğim.

İlk tavsiyem acele etmeyin. Hemen üretken olmayı beklemeyin. Kendinize iki hafta alışma süresi tanıyın. Günde 30 dakika pratik yapın. Bu yatırımın karşılığını ömür boyu alırsınız.

Linux, Windows ve macOS’ta Emacs Kurulumu (Güncel Sürümler)

Kurulum artık her platformda çok kolay. Güncel sürümleri (30.x serisi) yüklemek için adımları izleyin:

Linux:

  1. Debian/Ubuntu:
    sudo apt update && sudo apt install emacs

    Depoda genelde güncel sürüm bulunur. Değilse PPA ekleyin.

  2. Fedora:
    sudo dnf install emacs
  3. Arch:
    sudo pacman -S emacs
  4. Kaynak Kod: En güncel için git clone ile çekip ./configure && make && sudo make install yapın. Native compilation için --with-native-compilation bayrağını ekleyin.

macOS:

  1. Homebrew:
    brew install --cask emacs

    GUI sürümü için bu yeterli.

  2. Emacs-plus: Daha fazla özellik için:
    brew tap d12frosted/emacs-plus && brew install emacs-plus

Windows:

  1. Resmi GNU FTP sunucusundan .exe kurulum dosyasını indirin.
  2. Kurulum sihirbazını takip edin.
  3. Alternatif olarak winget install GNU.Emacs komutunu kullanın.
  4. WSL2 üzerinde Linux sürümünü de çalıştırabilirsiniz.

Kurulumdan sonra daemon modunu etkinleştirin. emacs --daemon ile arka planda çalışır. Dosyaları emacsclient ile anında açarsınız. Böylece başlangıç süresini sıfırlarsınız. Bu yöntem server mode sayesinde hafıza kullanımını da optimize eder.

Tavsiye
Windows’ta Emacs kullanıyorsanız WSL2 üzerinde Linux sürümünü tercih edin. Performans farkı çok belirgin. Ayrıca ripgrep, fzf, fd gibi araçlar doğal ortamlarında çalışır.

İlk 20 Dakikada Öğrenmeniz Gereken Temel Kısayollar

Ctrl+X Ctrl+S gibi temel kısayollarla başlayın. İşte hayatta kalma rehberiniz:

  • Dosya Aç: C-x C-f (find-file). En temel komut. Dosya yoksa oluşturur.
  • Kaydet: C-x C-s (save-buffer). Alışkanlık haline getirin.
  • Kapat: C-x C-c (save-buffers-kill-terminal). Çıkış yaparken kaydetmeyi sorar.
  • Komut Çalıştır: M-x (Meta tuşu + x). Tüm komutlara erişim kapısı.
  • Geri Al: C-/ veya C-_. Sınırsız geri alma, kill ring ile entegre.
  • Ara: C-s (incremental search). Yazdıkça anında arar.
  • Pencere Böl: C-x 2 (yatay), C-x 3 (dikey).
  • Pencereler Arası Geçiş: C-x o (other window).
  • Tampon Değiştir: C-x b (switch-to-buffer).
  • Yardım Al: C-h k sonra bir tuşa basın. O tuşun fonksiyonunu gösterir.
  • Copy Paste Kısayolları: C-space ile seç, M-w kopyala, C-y yapıştır. Kill ring geçmişini M-y ile dolaş.
  • Satır Başı/Sonu: C-a ve C-e.

Bu kısayolları ezberleyin. İlk gününüzü sadece bunlarla geçirin. Daha fazlasını öğrenmek için acele etmeyin. Otomatik tamamlama ve syntax highlighting zaten varsayılan olarak açıktır. Zamanla diğer özellikleri keşfedersiniz.

İlk init.el Dosyanız: use-package ile Paket Yönetimi

Konfigürasyon dosyası ~/.emacs.d/init.el yolundadır. Bu init dosyası sizin kontrol panelinizdir. Adım adım ilk yapılandırmanızı oluşturalım:

  1. Temel ayarları yazın:
    ;; Paket arşivleri
    (require 'package)
    (add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t)
    (package-initialize)
    
    ;; Gereksiz arayüz öğelerini kapat
    (tool-bar-mode -1)
    (menu-bar-mode -1)
    (scroll-bar-mode -1)
    
    ;; Satır numarası
    (global-display-line-numbers-mode 1)
  2. İlk paketinizi ekleyin:
    ;; use-package artık yerleşik, doğrudan kullanın
    (use-package vertico
      :ensure t
      :init (vertico-mode 1))
    
    (use-package orderless
      :ensure t
      :custom (completion-styles '(orderless basic)))
  3. Tema yükleyin:
    (use-package doom-themes
      :ensure t
      :config (load-theme 'doom-one t))
  4. LSP modu ekleyin:
    (use-package eglot
      :ensure t
      :hook ((python-mode . eglot-ensure)
             (rust-mode . eglot-ensure)))
  5. Tree-sitter kurulumu:
    (use-package treesit-auto
      :ensure t
      :config (global-treesit-auto-mode 1))

Bu temel konfigürasyon sizi başlatır. Zamanla ihtiyaçlarınıza göre büyür. Önemli olan her eklediğiniz paketin ne işe yaradığını anlamanızdır.

Android’de Emacs: Mobil Cihazlarda Tam Teşekküllü Emacs Deneyimi

Android desteği artık resmi. Android port ile tablet veya telefonda çalışır. Kurulum için adımlar:

  1. F-Droid mağazasını yükleyin.Emacs 30’un Android portu resmi olarak F-Droid’de yayınlanmıyor. APK doğrudan GNU FTP sunucusundan indirebilir veya termux üzerinden pkg install emacs komutuyla kurabilirsiniz. F-Droid’deki sürümler topluluk derlemeleridir, resmi değildir.
  2. Emacs APK’sını indirin. 30.x sürümünü seçin.
  3. Klavye ayarlayın. Hacker’s Keyboard veya Unexpected Keyboard öneririm. Ctrl ve Meta tuşu gerekir.
  4. Termux desteği: İsteğe bağlı olarak Termux Emacs ile de çalışabilirsiniz. Ancak APK daha entegredir.
  5. Konfigürasyonu senkronize edin: init.el dosyanızı cihaza kopyalayın.

Telefonda kod yazmak pratik olmasa da tablette Org-mode ile not almak harikadır. Yolda fikirlerinizi yakalarsınız, masa başında devam edersiniz. Mobil ve masaüstü arasında köprü işlevi görür.

Literate Programming: org-babel ile Kod ve Dokümantasyonu Birleştirin

Donald Knuth’un literate programming kavramı burada vücut bulur. org-babel sayesinde kod ve açıklamalar aynı dosyada yaşar. Bu yaklaşım düşünce biçiminizi değiştirir. Önce düşünür, yazar, sonra kodlarsınız.

Klasik geliştirmede kod yazarsınız, sonra yorum eklersiniz. Bu yöntemde ise önce anlatırsınız, sonra kodu gömersiniz. Sonuç hem çalışan kod hem de okunabilir dokümandır. Yıllardır bu yaklaşımla çalışıyorum, kod kalitem belirgin biçimde arttı.

org-babel ile Çoklu Dil Desteği (Python, R, Bash, SQL)

org-babel tek dosyada birden çok programlama dilini çalıştırmanızı sağlar. Her kod bloğu bağımsız bir oturumda çalışır. Sistem bu sonuçları anında belgenin içine ekler. Adım adım kuralım:

  1. Dil desteğini etkinleştirin:
    (org-babel-do-load-languages
     'org-babel-load-languages
     '((python . t) (R . t) (shell . t) (sql . t)))
  2. Kod bloğu ekleyin: Org dosyasında #+begin_src python yazıp Enter’a basın. Blok oluşur.
  3. Kodu çalıştırın: Blok içinde C-c C-c yapın. Sistem kodu çalıştırır ve sonucu alt satıra yazar.
  4. Değişken paylaşımı: Bloklar arası veri aktarımı için :var başlığını kullanın.
  5. Oturum yönetimi: :session ile kalıcı oturum açın. Bu sayede değişkenleri bloklar arasında korursunuz.

Veri bilimi projelerinde bu yetenek altın değerindedir. Python ve R kodlarını aynı dosyada çalıştırıp sonuçları görselleştirirsiniz. SQL sorgularını veritabanına bağlanıp anında test edersiniz.

org-babel ile Rapor, Sunum ve Tez Hazırlama

Akademik yazım için org-babel biçilmiş kaftandır. İşte kullanım senaryoları:

  • Teknik Rapor: LaTeX ile profesyonel PDF çıktısı alın. Sistem kod bloklarını otomatik olarak renklendirir. Bunun yanı sıra sistem grafikleri anında belgenize ekler.
  • Akademik Tez: Bölümleri ayrı Org dosyalarında yazın. Ana dosyada birleştirin. Kaynakçayı citar ve helm-bibtex ile yönetin.
  • Sunum: Org’dan Beamer sunumu üretin. Her slayta bir başlık altında tanımlayın. Hatta canlı kod demolarınızı slaytlara gömün.
  • Web Yayını: Org dosyasını HTML’e dönüştürün. Blog yazıları, dokümantasyon sayfaları üretin.
  • Jupyter Alternatifi: Org dosyası notebook gibi davranır. Hücre hücre kod çalıştırır, çıktıları görürsünüz.

org-ref ve auctex ile tam teşekküllü akademik yazım ortamı kurarsınız. Pandoc entegrasyonu ile Word dosyasına bile dönüştürebilirsiniz. Danışmanınıza göndermeniz gerektiğinde can kurtarır.

Sık Karşılaşılan Sorunlar ve Çözümleri

Her güçlü araç gibi bu sistemin de can sıkan yanları var. Yıllar içinde sayısız sorunla boğuştum. Neyse ki hepsinin bir çözümü var. En yaygın sorunları ve pratik çarelerini paylaşayım.

Emacs Pinky Sendromu (RSI) Nasıl Önlenir? (Çözüm Adımları)

Emacs pinky meşhur bir sorundur. Sürekli Ctrl tuşuna basmaktan serçe parmak ağrır. RSI yani tekrarlayan zorlanma yaralanması ciddi bir risktir. Ancak önlemek mümkün. Adım adım çözelim:

  1. Caps Lock’u Ctrl yapın: İşletim sistemi ayarlarından değiştirin. Serçe parmak doğal pozisyonda kalır.
  2. God mode kullanın: Sticky modifier mantığıyla çalışır. Ctrl basılı tutmak yerine önce Ctrl’ye basar bırakır, sonra tuşa basarsınız.
  3. Evil mode’a geçin: Vim tuşları chord gerektirmez. Tek tuş komutlarıyla çalışır, parmaklar rahat eder.
  4. Ergonomik klavye kullanın: Kinesis Advantage gibi bölünmüş klavyeler harikadır. Başparmakla Ctrl kullanımı mümkün olur.
  5. Pedala kısayol atama: USB pedallarla Ctrl, Meta gibi tuşları ayağınıza atayın. Eller dinlenir.
  6. Düzenli mola verin: Saatte bir 5 dakika esneyin. Parmak egzersizleri yapın.
  7. Evil mode ile Vim tuşlarını benimseyin: Modal editing’e geçin. Chord’lu kısayolları minimize edin.
Uyarı
RSI belirtilerini hafife almayın. Serçe parmağınızda uyuşma, bilekte ağrı varsa hemen önlem alın. İlerlemiş vakalarda tedavi aylar sürebilir. Aslında parmak ergonomisi lüks değil, zorunluluktur.

Türkçe Karakter Sorunu ve UTF-8 Desteği

Türkçe karakter sorunu geçmişte baş belasıydı. Neyse ki artık UTF-8 varsayılan. Modern sürümlerde ek ayar gerekmez. Yine de eski sistemlerden gelen dosyalarda sorun çıkabilir.

Çözüm için init.el dosyanıza şu satırı ekleyin: (prefer-coding-system 'utf-8). Ayrıca (set-language-environment "Turkish") ile dil ortamını ayarlayın. Türkçe klavyede Meta tuşu için AltGr yerine sol Alt kullanın. Gerekirse input method olarak turkish-postfix ekleyin.

Yavaş Çalışan Emacs için Optimizasyon İpuçları

Konfigürasyon büyüdükçe yavaşlama kaçınılmazdır. Neyse ki çözümler basit:

  • Daemon mode kullanın: Emacs arka planda çalışsın. Dosyaları emacsclient ile anında açın.
  • Lazy loading uygulayın: :defer t ile paketleri erteleyin. İhtiyaç anında yüklensin.
  • Gereksiz paketleri temizleyin: Kullanmadığınız her şeyi kaldırın. Minimalizm hız getirir.
  • Native compilation aktif edin: --with-native-compilation bayrağıyla kurun. Büyük fark yaratır.
  • GC ayarlarını optimize edin: (setq gc-cons-threshold 100000000) ile çöp toplama eşiğini yükseltin.
  • Eski bilgisayarda hızlı çalıştırma yöntemleri: Terminal sürümünü kullanın, GUI’den kaçının. Tema ve font ayarlarını sade tutun.

Ne Zaman Emacs Tercih Edilmez? (Eleştirel Bakış)

Dürüst olalım. Bu araç her durum için uygun değildir. Fanatiklik yapmamalı, doğru zamanda doğru aracı seçmelisiniz. Yılların tecrübesiyle söylüyorum: Bazen bu editörü kullanmamak daha akıllıcadır.

İşte kullanmamanız gereken durumlar. Objektif olacağım, toz kondurmayan tayfadan değilim. Her aracın zayıf yönleri vardır. Bunları bilmek sizi daha iyi bir mühendis yapar.

Veri Bilimi ve Büyük Veri Setleriyle Çalışma

Veri bilimi projelerinde Jupyter notebook’ların yeri ayrıdır. Görsel grafikler, etkileşimli çıktılar ve hücre bazlı çalışma Jupyter’da daha akıcıdır. Emacs ile veri bilimi yapabilirsiniz. Ancak bazı durumlarda işkenceye dönüşür.

Özellikle çok büyük CSV dosyalarını açmak bu editörde eziyettir. Milyon satırlı veri setlerinde bellek tüketimi artar. Özel modlar işi kurtarsa da RStudio veya JupyterLab daha verimlidir. Veri görselleştirme için Matplotlib entegrasyonu sınırlıdır.

Yine de org-babel ile R ve Python entegrasyonu güçlüdür. Küçük ve orta ölçekli veri analizleri için idealdir. Karar sizin projenizin ölçeğine bağlıdır.

Takım Çalışması ve Proje Paylaşımı

Pair programming yapıyorsanız veya takımınız VS Code kullanıyorsa direnmek anlamsızdır. Konfigürasyonunuz kişiseldir, paylaşması zordur. Herkesin kendine özgü kısayolları ve eklentileri vardır.

Ortak proje ayarlarını .editorconfig ile standartlaştırabilirsiniz. Ancak derinlemesine konfigürasyon uyumu zordur. Takım normlarına uymak profesyonelliktir. Aslında kendi başınıza çalışırken bu editörü kullanın, takımdayken ortak araca geçin.

Mobil ve Frontend Geliştirme

React, Flutter gibi modern framework’lerle çalışırken VS Code’un sunduğu entegrasyon seviyesine ulaşmak zordur. Hot reload, görsel ön izleme, bileşen ağacı gibi özellikler eksiktir.

LSP mode ve tree-sitter entegrasyonu boşluğu kapatıyor. Ama hâlâ pürüzsüz bir deneyim sunmuyor. Özellikle JSX/TSX dosyalarında syntax highlighting kusursuz değildir. Frontend ağırlıklı çalışıyorsanız uzmanlaşmış bir IDE daha uygundur.

Emacs İçin İleri Okuma Kaynakları

Bu rehberi beğendiyseniz daha derinlere dalmak isteyebilirsiniz. İşte sizi bir üst seviyeye taşıyacak otoriter kaynaklar:

Resmi GNU Emacs kılavuzu her zaman en güncel ve doğru bilgiyi sunar. GNU Emacs Manual üzerinden tüm dokümantasyona erişebilirsiniz. Referans niteliğindedir, her kullanıcının başucunda bulunmalıdır.

Emacs Lisp öğrenmek için An Introduction to Programming in Emacs Lisp mükemmel bir başlangıçtır. Özgür yazılım vakfı tarafından yayınlanır, güvenilirdir. Adım adım örneklerle Elisp dünyasına girersiniz.

Sacha Chua’nın yıllardır güncellediği Emacs News bülteni topluluktaki gelişmeleri takip için paha biçilmezdir. Üstelik haftalık yayınlanır, yeni paketleri ve ipuçlarını keşfedersiniz.

Emacs Hakkında En Çok Merak Edilen 10 Soru

Emacs bir metin editörü müdür?

Bu soruya kısaca evet demek büyük haksızlık olur. Teknik tanımıyla özelleştirilebilir bir metin düzenleyicidir. Ancak sahada yaşadığımız gerçek çok daha çarpıcıdır. Bu araç tam teşekküllü bir geliştirme ortamıdır. İçinde eposta okursunuz, müzik dinlersiniz, hatta takviminizi yönetirsiniz.
Hatta bazı kullanıcılar ona bir işletim sistemi der. Çünkü pencere yöneticisi olarak bile çalışır. Günlük dijital yaşamın merkezi haline gelir. Düz metin felsefesiyle tüm verileriniz özgür kalır. Hiçbir kapalı formata hapsolmazsınız.
Kısacası bu platform, bir editörün çok ötesine geçer. Size kendi çalışma evreninizi inşa etme özgürlüğü verir. Bu yüzden 1985’ten beri dimdik ayaktadır. Açıkçası rakipleri gelip geçerken o hep zirvede kaldı.

Emacs ile hangi programlama dilleri kullanılabilir?

Neredeyse aklınıza gelebilecek her dil. Python, JavaScript, C, Rust, Go, Java, Ruby… Liste uzayıp gider. Bu ortamın asıl gücü major mode sisteminden gelir. Her dil için özel bir mod yükler, anında sözdizimi renklendirmesi alırsınız.
Tree-sitter entegrasyonu işleri uçurdu. Artık kod analizi modern IDE’lerle yarışıyor. Ayrıca yerleşik LSP istemcisi Eglot sayesinde kod tamamlama ve hata ayıklama hiç olmadığı kadar akıcı. Yani harici bir pakete gerek kalmıyor.
Sadece popüler dillerle de sınırlı değilsiniz. Elisp ile kendi dil desteğinizi bile yazabilirsiniz. Org-mode içinde birden fazla dili aynı dosyada çalıştırmanın keyfi ise paha biçilmezdir. Bir yanda Python kodu, diğer yanda Bash betiği aynı yerde yaşar.

Emacs öğrenmek zor mudur?

Sahadaki tecrübem şu: Zor değil, yalnızca farklı bir zihniyet istiyor. Alıştığınız kısayolları unutmanız gerekiyor. Yeni bir enstrüman çalmaya başlamak gibi düşünün. Başlangıçta parmaklarınız tuşlara yabancılık çeker.
Ancak bir hafta sabrederseniz her şey değişir. Kas hafızanız oluşur, zihniniz arayüzle değil işinizle meşgul olur. Dik öğrenme eğrisi sizi korkutmasın. Zirveye vardığınızda geri dönüş imkansızlaşır.
Hazır dağıtımlar bu süreci çok kolaylaştırdı. Doom veya Spacemacs ile modern bir arayüzle başlarsınız. Evil mode sayesinde Vim tuş alışkanlıklarınızı da yanınızda getirirsiniz. Kaybeden olmaz, herkes kendi yolunu bulur.

Emacs’ın en popüler alternatifleri (Vi/Vim, VS Code) nelerdir?

Vi ve Vim modal düzenleme felsefesiyle yıllardır tahtını korur. Hızlıdır, hafiftir ve hemen her sistemde kuruludur. VS Code ise Microsoft’un devasa eklenti pazarıyla göz kamaştırır. Grafik arayüzü ve kullanım kolaylığı tartışılmaz.
Fakat hiçbiri bu platformun genişletilebilirlik seviyesine ulaşamaz. Diğer editörler önce bir çözüm sunar, sonra özelleştirme izni verir. Bu araç ise size boş bir tuval ve sınırsız boya verir. Çözümü siz inşa edersiniz.
Üstelik Evil mode ile Vim’in tüm kas hafızasını içeri taşırsınız. LSP desteğiyle VS Code’un kod analiz gücünü yakalarsınız. Yani aslında rakiplerinin en iyi yanlarını bünyesinde eritir. Birini seçmek zorunda değilsiniz, hepsine sahip olursunuz.

Emacs’ı özelleştirmek için bir programlama dili bilmek gerekir mi?

Başlangıçta kesinlikle hayır. Hazır dağıtımlar sizi sıfır konfigürasyonla karşılar. Doom Emacs veya Spacemacs indirir, birkaç satırla modern bir IDE’ye kavuşursunuz. Grafik menülerden ayarları değiştirir, paketleri tek tıkla kurarsınız.
Yine de Elisp öğrenmek kapıları ardına kadar açar. Korkmayın, bir haftada temelini kavrarsınız. Bir fonksiyonu çağırmanın parantez açıp kapatmaktan ibaret olduğunu gördüğünüzde rahatlarsınız. Üstelik sistem içinde istediğiniz fonksiyonun kaynak koduna anında atlarsınız.
Zamanla kendi küçük fonksiyonlarınızı yazarsınız. Bir bakmışsınız editörünüz tamamen size özel bir hale gelmiş. Hiçbir kurulum birbirinin aynı değildir. Herkes kendi dijital atölyesini sıfırdan inşa eder.

Emacs’ta Türkçe karakter sorunu nasıl çözülür?

Modern sürümlerde bu sorun neredeyse tarih oldu. Emacs 29 ve sonrası UTF-8 kodlamasını varsayılan olarak kullanır. Yine de init.el dosyanıza birkaç satır eklemeniz gerekebilir. Karakter kodlamasını açıkça UTF-8’e ayarlamak en temiz çözümdür.
Font seçimi de çok kritik. Fira Code veya JetBrains Mono gibi geniş Unicode desteği sunan fontları tercih edin. Türkçe karakterlerin düzgün görünmesi için font ayarlarınızı şu satırlarla yapılandırın: (set-face-attribute ‘default nil :font “Fira Code” :height 140).
Eğer eski bir dosyayı açtığınızda bozuk karakterler görürseniz, C-x RET r (revert-buffer-with-coding-system) komutu imdadınıza yetişir. Manuel olarak UTF-8 seçip dosyayı yeniden yüklersiniz. macOS ve Linux’ta genelde sorun çıkmaz, Windows’ta ise LANG ortam değişkenini kontrol etmeniz yeterlidir.

Windows, macOS ve Linux’ta Emacs kurulumu nasıl yapılır?

Linux’ta işiniz en kolayı. Paket yöneticinizi açın, tek komutla halledin. Ubuntu veya Debian için sudo apt install emacs yeterlidir. Arch tarafında sudo pacman -S emacs ile anında hazır olur. Native compilation özelliğini istiyorsanız emacs-nativecomp paketini seçin.
macOS kullanıcıları için en temiz yol Homebrew’dur. brew install –cask emacs komutuyla son sürümü kaparsınız. Emacs Mac Port diye bilinen Mitsuharu Yamamoto sürümü de daha iyi macOS entegrasyonu sunar. brew tap d12frosted/emacs-plus ile zenginleştirilmiş bir versiyon da tercih edilebilir.
Windows’ta doğrudan GNU FTP sunucusundan yükleyiciyi indirirsiniz. Emacs 30 ile birlikte artık resmi bir Windows yükleyicisi mevcut. İndirir, çalıştırır, next-next-finish mantığıyla bitirirsiniz. Alternatif olarak MSYS2 ortamında pacman -S mingw-w64-x86_64-emacs ile de kurabilirsiniz.

Emacs’ın Türkçe doküman ve eğitim kaynakları nelerdir?

Maalesef Türkçe kaynaklar sınırlı, ancak yok değil. Emacs Türkiye topluluğu GitHub ve Telegram’da aktif. Sorularınızı çekinmeden sorabileceğiniz samimi bir ortam sunarlar. Özgür yazılım derneklerinin düzenlediği atölyeler de harika bir başlangıç noktasıdır.
İngilizce biliyorsanız dünya ayaklarınızın altına serilir. Yerleşik dokümantasyon sistemi efsanedir. C-h t (Ctrl+h, sonra t) ile interaktif öğretici başlar. C-h i ile Info kılavuzuna dalar, her şeyi editörün içinde öğrenirsiniz. Hatta İnternete bağlanmanız bile gerekmez.
YouTube’da System Crafters ve DistroTube kanalları sizi aylarca besler. Mastering Emacs kitabı ve Sacha Chua’nın blogu paha biçilmezdir. Resmi GNU Emacs kılavuzunu da mutlaka kurcalayın. Yeni başlayanlar için en verimli yol, yerleşik öğreticiyi bitirip hemen küçük bir projeye atılmaktır.

Yeni başlayanlar için en uygun Emacs dağıtımı (Starter Kit) hangisidir?

Doom Emacs ve Spacemacs iki dev isimdir. Spacemacs göz alıcı bir arayüz ve katman sistemi sunar. Özellikle Vim’den gelenler için Evil modu kusursuz entegre eder. Doom ise daha hızlıdır, daha sadedir ve lazy loading konusunda rakipsizdir.
Ancak benim yeni başlayanlara tavsiyem vanilla yani sade GNU Emacs ile başlamalarıdır. Sebebi basit. Hazır dağıtımlar sizi konfora alıştırır. Altında yatan mekanizmayı öğrenmeden ezbere kullanırsınız. İşler bozulduğunda çaresiz kalırsınız.
Vanilla ile bir hafta boğuşmak sizi uzun vadede usta yapar. use-package artık çekirdekte yerleşik. Bir init.el dosyası oluşturur, paketlerinizi tek tek eklersiniz. Sistemin her köşesini keşfeder, özgüven kazanırsınız. Sonra isterseniz Doom’a geçersiniz, ama bu sefer neyin nasıl çalıştığını bilirsiniz.

Emacs’ta Org-mode nedir ve hangi işler için kullanılır?

Org-mode düz metnin süper gücüdür. Görev takibinden akademik yazıma, proje yönetiminden günlük tutmaya kadar her şeyi yapar. org-agenda ile haftalık planınızı dakikalar içinde şekillendirirsiniz. TODO ve DONE durumlarıyla işleriniz asla havada kalmaz.
İkinci beyin inşa etmek isteyenler için org-roam müthiştir. Notlarınız arasında Zettelkasten tarzı bağlantılar kurarsınız. Grafik görünümüyle bilgi ağınızı keşfe çıkarsınız. Üstelik tüm veriler düz metindir, sizi asla bir bulut hizmetine mahkum etmez.
Akademisyenler için org-ref ve citar referans yönetimini çocuk oyuncağına çevirir. LaTeX ve auctex ile tez yazmak inanılmaz akıcıdır. Org-babel ise bambaşka bir evrendir. Python, R, Bash kod bloklarını aynı dosyada çalıştırır, sonuçları anında belgenize gömersiniz. Buna literate programming derler ve bağımlılık yapar.

Sonuç: Emacs Bir Editörden Çok Daha Fazlası

Bu uzun sohbetin sonuna geldik. Umarım bu aracın neden bu kadar özel olduğunu aktarabilmişimdir. Bu bir metin düzenleyici değil, bir düşünce biçimidir. Size kod yazmayı değil, çalışma ortamınızı programlamayı öğretir.

Yıllar içinde yüzlerce araç denedim. Hiçbiri aynı kontrol hissini vermedi. Hiçbiri verilerim üzerinde bu kadar tam egemenlik sunmadı. Dijital minimalizm arayışımın son noktası burası oldu. Tüm işlerimi tek bir pencerede, klavyeden yönetiyorum.

Öğrenme eğrisi diktir, evet. Ama zirveye vardığınızda manzara nefes kesicidir. Bilişsel yatırım gerektirir, doğru. Ancak bu yatırım size özyeterlilik olarak döner. Artık araçlara mahkum değil, araçlarınıza hakim olursunuz.

Yazılım özgürlüğü soyut bir kavram gibi gelebilir. Oysa bu editörün sunduğu şey tam olarak budur. Kodunuz, notlarınız, e-postalarınız size aittir. Hiçbir format sizi esir alamaz.

Şimdi karar sizin. İster Doom ile başlayın, ister Vanilla ile. İster Vim tuşlarıyla, ister geleneksel kısayollarla. Önemli olan bu yolculuğa çıkmak. Zira bu araç size sadece kod yazmayı değil, düşünmeyi de öğretecek!

Bu Rehberi Keşfettikleri İçin Sana Teşekkür Edecekler!

Sadece bir tıkla sevdiklerine dev bir iyilik yapmaya hazır mısın? Bilgi paylaştıkça devleşir.

İlk yorumu sen paylaş