Emacs 31'de şimdiden her gün kullanılan değişiklikler
(rahuljuliato.com)- Emacs 31 henüz resmi olarak yayımlanmadı, ancak
emacs-31dalı vemasterüzerinde şimdiden günlük kullanımda hissedilen değişiklikler birikiyor; birçok ayar harici paket olmadan yalnızca Emacs çekirdeğiyle çözülebilecek bir yöne kayıyor - Tree-sitter otomatik geçişi ve dilbilgisi kurulumu eklenince, major mode ve dilbilgisi kaynağı ayarlarını elle yönetme yükü azalıyor
markdown-ts-mode, Eglot belge render etme,eldoc-help-at-pt, eager completion vexref-edit-mode, düzenleme, gezinme ve belge inceleme akışını yerleşik özellikler merkezli olarak güçlendiriyor- Speedbar side window, VC otomatik gizleme, ERC günlük koşulları,
kill-region-dwim,ielm-history-file-name,native-comp-async-on-battery-powergibi küçük seçenekler tekrarlayan sürtünmeleri azaltıyor - Emacs 31'deki özellik adları ve varsayılan değerler hâlâ değişebilir;
markdown-ts-modeve bunu kullanan Eglot belge render etme özelliği ise açıkça etkinleştirilmesi gereken deneysel özellikler olarak belirtiliyor
Emacs 31 önizlemesinin çerçevesi
- Emacs 31 henüz yayımlanmadı; referans ortam, 2026 ortalarında
emacs-31dalı ilemasterı derleyip kullanan bir yapılandırma - Burada tanıtılanlar, gerçek günlük ayarlara girmiş değişiklikler ve çoğu ya Emacs çekirdeğine zaten girmiş durumda ya da buna çok yakın
- Özellik adları ve varsayılan değerler nihai sürümden önce değişebilir
- Ayar örnekleri, Emacs Solo içindeki
init.eldosyasında; EMACS-31yorumlarıyla görülebilir
Daha az Tree-sitter yapılandırması
- Emacs 31'de iki seçenekle Tree-sitter tabanlı mode geçişi ve dilbilgisi kurulum akışı sadeleşiyor
treesit-enabled-modes ttreesit-auto-install-grammar t
treesit-enabled-modesdeğeritolduğunda, Tree-sitter varyantı bulunan major mode'lar ilgili mode'a geçirilirtreesit-auto-install-grammar, dilbilgisi eksik olduğunda yalnızca hata vermek yerine, Emacs'ın dilbilgisini indirip derlemesini önerir- TypeScript, TSX, Rust, TOML, YAML, Dockerfile gibi dillerin dilbilgisi kaynakları mode'ların içine girdikçe,
treesit-language-source-alistiçine URL ve yol eklemeyi elle yapma ihtiyacı azalır - Birden çok mimaride paylaşılan Emacs dizini kullanılıyorsa dikkat gerekir
- Otomatik kurulan dilbilgileri mimariye göre ayrılmaz
x86_64için.soilearm64için.soaynı ad altında bulunabilir; bir makinede derlenen ikili dosya başka bir makinede yüklenemeyebilir
Yerleşik markdown-ts-mode
- Emacs 31, deneysel
markdown-ts-modeiçeriyor - Bu mode, 2025 başında emacs-devel'e gönderilen bir öneriyle başladı; sonrasında Stéphane Marks ortak yazar olarak katılıp geliştirmeyi sürdürdü
- Markdown'ı yalnızca basit sözdizimi renklendirme konusu olarak değil, yazması ve okuması rahat bir düzenleme ortamı olarak ele alıyor
- Org kullanıcılarına tanıdık gelen başlıklar arasında gezinme, katlama ve yapısal öğe taşıma yöntemleri sunuyor
- fenced code block'lar düz sabit genişlikli metin olarak değil, ilgili dilin gerçek major mode'u ile font-lock uygulanmış şekilde gösteriliyor
- Emacs Lisp blokları ve diğer yerleşik mode'lar da gerçek sözdizimi vurgusu alabiliyor
- Kod bloğu düzenleme komutlarının önemli bir kısmı çalışıyor, ancak blok içi tamamlama hâlâ pürüzlü taraflar barındırıyor
- Görsel bağlantıları tampon içinde satır içi olarak render ediliyor
- Henüz
auto-mode-alistiçine bağlanmadığı için.mddosyalarını otomatik açmıyorM-x load-library RET markdown-ts-modeile kütüphane yüklendikten sonra tampon içinde etkinleştirilebilir- Elle
auto-mode-alistiçine eklemek de mümkün
- Geri bildirimler, bug list üzerinden
M-x report-emacs-bugile gönderilebilir - Ek ekran görüntüleri markdown-ts-mode-lab demo içinde yer alıyor
Eglot, Eldoc ve completion iyileştirmeleri
- Eglot, Emacs 31'de LSP belgelerini
markdown-ts-view-modeile render edebiliyoreglot-documentation-renderer 'markdown-ts-view-mode- biçimlendirilmiş hover belgeleri harici paket olmadan görülebiliyor
- Bu özellik
markdown-ts-mode'a dayandığı için o da aynı şekilde deneysel
eglot-code-action-indicationsile yeni satır içi code action ipuçları kapatılabiliyor- Bazı language server'larda bu ipuçları fazla gürültülü gelebilir
eglot-events-buffer-size, yerinieglot-events-buffer-configayarına bırakıyoreldoc-help-at-pt t, imlecin altındaki öğenin yardımını ayrıca çağırmadan gösteriyoreldoc-echo-area-prefer-doc-bufferile birlikte kullanıldığında, tanıdık olmayan kodda gezinirken daha fazla rehberlik sağlıyor
- Completion ile ilgili yeni ayarlar, yazarken arayüzü daha agresif biçimde güncelliyor
completion-eager-update tcompletion-eager-display 'autominibuffer-visible-completions 'up-down
completion-eager-updatevecompletion-eager-display, kullanıcı açıkça istemeden de girişe göre completion arayüzünü yeniliyorminibuffer-visible-completionsdeğeri'up-downolduğunda, görünen adaylar arasında ok tuşlarıyla gezilebiliyor- icomplete, bug#75784 yamasını içeriyor; böylece vertical in-buffer davranışı ve prefix indicator ekleniyor
icomplete-vertical-in-buffer-adjust-listicomplete-vertical-render-prefix-indicator
Pencere yerleşimi ve Speedbar
- Emacs 31'e, pencereleri tek tek yeniden bölüp kapatmadan yerleşimi değiştiren komutlar eklendi
window-layout-transposewindow-layout-rotate-clockwisewindow-layout-flip-leftrightwindow-layout-flip-topdown
- transpose yatay ve dikey dizilişi değiştirir, rotate tüm yerleşimi döndürür, flip komutları ise sağ-sol ya da üst-alt ayna etkisi uygular
- Tamponları koruyarak 3 pencereli düzende yalnızca düzenleyici pencerelerinin yerini değiştirmek istediğinizde kullanışlıdır
- Speedbar, Emacs 31'de ayrı bir frame yerine side window içinde yerleştirilebiliyor
speedbar-window-default-widthspeedbar-window-max-widthspeedbar-window
speedbar-window, Speedbar'ı modern bir dosya ağacı gibi yana dock eder- Tiling ortamlarında veya tek monitörlü dizüstülerde bu side window yaklaşımı, eski floating frame yöntemine göre daha iyi uyuyor
VC ve düzenlenebilir xref
- VC'ye, günlük sürüm kontrol akışındaki sürtünmeyi azaltan ayarlar ekleniyor
vc-auto-revert-mode tvc-allow-rewriting-published-history tvc-dir-auto-hide-up-to-date 'revert
vc-dir-auto-hide-up-to-date,vc-dirtamponu yenilendiğinde güncel durumdaki dosyaları otomatik gizler- Eskiden
vc-dir-refreshsonrasıvc-dir-hide-up-to-dateçağıran tuş hileleri silinebilir
- Eskiden
vc-allow-rewriting-published-history, Jujutsu ya da feature branch force-push gibi zaten push edilmiş geçmişin bilinçli olarak yeniden yazıldığı akışlara uyuyor- Emacs 31'e düzenlenebilir xref tamponu geliyor
- Eski xref tamponunda yalnızca
rilexref-query-replace-in-resultsvardı ve bu da regex tabanlı değiştirmeyle sınırlıydı - Dired'deki
wdired-modeveya grep tamponlarındakigrep-edit-modegibi, sonuç tamponunu doğrudan düzenleme akışı xref'te yoktu
- Eski xref tamponunda yalnızca
- İlk öneri,
xref-export-to-grepile xref sonuçlarınıfile:line:contentbiçimindeki bir grep-mode tamponuna aktarıp orada düzenlemekti - xref bakımcısı Dmitry Gutov, grep tamponuna dolanarak giden bu arayüz yerine xref tamponu içinde satır içi düzenleme önerdi; ardından
xref-edit-modeyazılıp eklendi xref-edit-mode, ek tampon geçişlerini ortadan kaldırıyor ve büyük xref tamponlarında daha hızlı çalışıyor- Kullanım akışı,
C-x p gile arama yaptıktan sonra*xref*tamponundaeile düzenleme modunu başlatmak ve değişikliklerden sonraC-c C-cile onaylamak şeklinde - İlgili tartışma bug#80616 adresinde açık olarak bulunabilir
ERC ve küçük kalite iyileştirmeleri
- ERC,
erc-log-insert-log-on-open 'erc-log-new-target-buffer-pile önceki günlükleri yalnızca yeni bir target buffer açıldığında ekleyebilir - Emacs 31'de ERC'nin
scrolltobottommodülü artıkerc-fill-wrap'e bağlı değil; böylece eski sürümler için koşullu ayarlar kaldırılabilir - Küçük ayar değerleri de kullanılabilirliğe katkı sağlıyor
delete-pair-push-mark t:delete-pairsonrasında mark'ı push eder, böyleceC-x C-xile iç kısmı seçebilirsinizibuffer-human-readable-size t: ham byte yerine KB/MB gösteririelm-history-file-name: IELM giriş geçmişini yeniden başlatmalardan sonra da korurkill-region-dwim 'emacs-word: etkin bir region yoksaC-whata vermek yerine sonraki kelimeyi kill edernative-comp-async-on-battery-power nil: pildeyken arka plan native compilation'ı durdururview-lossage-auto-refresh t:C-h lson tuş girişlerini gerçek zamanlı güncellerdisplay-fill-column-indicator-warning nildired-hide-details-hide-absolute-location t:dired-hide-details-modeiçinde mutlak dizin yolunu gizlerworld-clock-sort-order "%FT%T": world clock sıralamasını ayarlarzone-all-frames tzone-all-windows-in-frame tuniquify-after-kill-buffer-flag t: önceki-pvaryantından yeniden adlandırıldı
kill-region-dwim,C-wkullanımında “the mark is not active” hatasını önlüyorview-lossage-auto-refresh, ekran paylaşımı veya eğitim sırasında tuş girişlerini anlık göstermek için faydalınative-comp-async-on-battery-power nil, prize takılı olmadan hareket halindeyken arka plan derlemesi nedeniyle fanın çalışmasını azaltıyortty-tip-mode, Emacs-nwile çalıştırıldığında da tooltip sağlıyor
term, Modus temaları ve neden master kullanılıyor
- Emacs 31,
termveansi-termiçinde satırların yutulması veya ekranın bozulması sorunlarını düzeltiyorhtop,nethack, curses tabanlı programlar gibi imleç adresleme ve tam ekran redraw kullanan uygulamalar Emacs terminali içinde düzgün redraw ediliyor- Harici bir terminal emülatörü açma gerekçelerinden biri daha azalıyor
- Emacs, Protesilaos'un Modus 5 temalarını içeriyor
modus-operandi-deuteranopia: beyaz arka planlı, deuteranopia için optimize temamodus-operandi: beyaz arka planlı, yüksek okunabilirlikli temamodus-operandi-tinted: açık okra arka planlı, yüksek okunabilirlikli temamodus-operandi-tritanopia: beyaz arka planlı, tritanopia için optimize temamodus-vivendi-deuteranopia: siyah arka planlı, deuteranopia için optimize temamodus-vivendi: siyah arka planlı, yüksek okunabilirlikli temamodus-vivendi-tinted: gece göğü arka planlı, yüksek okunabilirlikli temamodus-vivendi-tritanopia: siyah arka planlı, tritanopia için optimize tema
- Yayımlanmamış bir Emacs'ı her gün kullanma nedeni, çekirdeğe nelerin geldiğini doğrudan görmek ve her sürümde elle yazılan glue code miktarının nasıl azaldığını izlemek
- Hâlihazırda eklenmiş özellikleri ele alan eşlikçi yazı olarak Even More Batteries Included with Emacs da görülebilir
1 yorum
Lobste.rs görüşleri
tree-sitter değişiklikleri gerçekten heyecan verici görünüyor. Kurulum sürecinin hep epey hantal olduğunu düşünmüşümdür
eager complete’i de merak ediyorum.
icompletevefido-modeistediğime oldukça yakın, ama hâlâcorfugibi üçüncü taraf paketler kadar kullanışlı değillerverticobenzeri bir deneyim elde edebilsek harika olurBirkaç ince ayar ve birkaç yerleşik özelliği açmak bile kullanılabilirliği ciddi biçimde değiştiriyor;
bedrockveemacs-soloda bu şekilde yapılandırılmışEmacs her açıldığında eksik
dylibile ilgili kocaman bir uyarı mesajı çıkıyorÖrnekteki
(treesit-auto-install-grammar t)ve(treesit-enabled-modes t)sözdizimi fonksiyon çağrısı gibi görünüyor ama aslında ayarlanması gereken seçeneklerBir sonraki sürümde hoşuma giden küçük değişiklikler de var:
minibuffer-nonselected-modeartık varsayılan olarak açık, böylece minibuffer’da tamamlanmamış iş kaldığını görmek kolaylaşıyor;diff-modeiçindekidiff-delete-other-hunksda Emacs 29’da gelen diff tamponlarının VC davranışıyla birlikte çok faydalıwith-work-buffer,with-temp-buffer’a benziyor ama tampon havuzunu yeniden kullanıyor. Kendi yapılandırmamda tesadüfen aynı tampon adlandırma kuralı olan*work*kullandığım için fark ettimEmacs 31’e
lua-modedahil edilmiş, yani artık ayrıca kurmaya gerek yokHer şeyi yine tam istediğim gibi yapmak için birkaç ayar da gerekti:
xterm-mouse-modevarsayılan olarak açık olduğu için onu özellikle kapattım,mode-lineface’i koyu temaya uyacak şekilde değişiyor ama eski varsayılan renklere alıştığım için geri aldımEmacs 31, kaynak dosyalarda
lexical-bindingçerezi yoksa uyarı veriyor. Rahatsız ederse kapatılabiliyor,elisp-enable-lexical-bindingkomutuyla kolayca düzeltilebiliyor ve hattalexical-bindingküresel varsayılan haline getirilebiliyorYeni hatalar çıkmazsa, her zamanki gibi sağlam bir sürüm olacak gibi duruyor
use-packageiçindeki:customlistesinden kopyalanmışBu yüzden
:customkonusunda biraz kararsızım. Değerleri denemek veya paylaşmak istediğinde daha uğraştırıcı oluyorwith-work-bufferperformans için mi var? Belgelerde nedenwith-temp-bufferyerine kullanman gerektiği değil, sadece daha dikkatli olman gerektiği yazıyorelpaiçindeki dosyalarda değil, sadece kendi dosyalarımda uyarı verse güzel olurduAyrıca Emacs’imdeki 68 uyarının 64’ü üretilmiş dosyalar olan
-autoloads.eliçinden geliyor. Bunu herhaldeelpa/melpatarafındaki üretim araçlarının düzeltmesi gerekiyorSonunda düzenlenebilir xref gelmesini bekliyordum; bu, günlük hayatımı çok daha rahat hale getirecek gibi görünüyor
Her gün kullandığım şeylere şaşırtıcı derecede çok dokunan, gerçekten harika değişiklikler var
Nvim varsayılanı vim regex’lerinden treesitter’a çevirince yazı yazma ortamım bozuldu
treesitter, Markdown içindeki HTML yorumlarını ayrıştırmak için biraz yapılandırma istiyordu ve parçaları bir araya getirdikten sonra bile çalışmadı
Sonunda treesitter’ı kapatarak çözdüm
Editör gibi temel altyapılarda çok muhafazakârım. Editör değişiklikleri çoğu zaman yıllardır sorunsuz çalışan bir şeyi bozuyor