1 puan yazan GN⁺ 4 시간 전 | 1 yorum | WhatsApp'ta paylaş
  • Emacs’in yerleşik özellikleri arasında ek paket olmadan kullanılabilen ama pek görünür olmayan birçok araç var; modern Emacs 28.1+ sürümlerinde bile 5 dakikada öğrenilebilecek pratik özellikler keşfedilmeye devam ediyor
  • Dosya açma, URL toplama, karşılaştırma ve değişiklik izleme gibi günlük işler find-file, dired, ffap-menu, compare-windows, highlight-changes-mode ile büyük ölçüde halledilebiliyor
  • Yedek dosyalar ve sürüm kontrolü altındaki dosyalar için vc-diff ailesindeki komutlar genişletilerek önceki sürümle karşılaştırma şeklinde tek bir iş modeli altında birleştirilebiliyor
  • Düzenleme, gezinme ve görüntüleme işleri; apropos ailesi, find-function-on-key, kmacro-edit-lossage, subword-mode ve görüntü düzenleme keymap’i gibi zaten dahil olan özelliklerle hızla iyileştirilebiliyor
  • Temel çıkarım şu: Emacs’in lisp dizini çok büyük olmasa da yalnızca yerleşik özelliklerle iş akışını genişletmek için hâlâ ciddi bir alan var

Genel bakış ve kapsam

  • Emacs özelliklerinde keşfedilebilirlik sorunu var; bu yazı da iyi bilinmeyen ama yararlı yerleşik özellikleri tek tek göstererek bu sorunu azaltma denemesi
  • Bu yazı, Emacs ile varsayılan olarak gelen yararlı ama daha az bilinen özellikleri ele alan üçüncü yazı
  • “Daha az bilinen” ifadesi öznel bir yargı; kabaca, son 20 yıldaki çevrimiçi Emacs tartışmalarında ilgili özelliğin beşten az anılmış olması ya da hiç görülmemiş olması anlamına geliyor
  • Yeni Emacs kullanıcılarının buradan başlamaması daha iyi olur; temel kavramlara ve yaygın önerilen paketlere alıştıktan sonra bu liste daha yararlı hale gelir
  • Ölçütler şöyle: paket olmadan yalnızca saf Emacs kullanmak, dik bir öğrenme eğrisi olmaması, oyuncak özellikler ile sık anılan özellikleri dışarıda bırakmak ve modern Emacs 28.1+ sürümlerini temel almak

Fareyle üzerine gelince sözlük: M-x dictionary-tooltip-mode

  • dictionary-tooltip-mode açıldığında, bir kelimenin üzerine fareyle geldiğinizde anlamını araç ipucunda görebilirsiniz
  • tooltip-mode da açık olmalı, ancak varsayılan olarak zaten etkin
  • Yerel bir sözlük ayarlanmışsa önce o kullanılır; Emacs sözlüğü genelde Wiktionary üzerinden modern terimleri ve argo ifadeleri de bulabilir

find-file ve dired içinde joker karakterler

  • find-file ve dired etkileşimli olarak kullanılırken de joker karakterler kullanılabilir
  • find-file içinde *foo*.txt gibi bir desen kullanırsanız birden fazla dosyayı aynı anda açabilirsiniz
  • Dired’da bir dizin açarken dosya adı joker karakteri belirtirseniz yalnızca belirli dosyaları toplayan özel bir liste oluşturabilirsiniz
  • Örnek akışta */*_region_* deseniyle alt dizinlerdeki AucTeX geçici dosyaları bulunuyor, Dired içinde seçilip siliniyor ve ardından yine joker karakterle alt dizinlerdeki birden çok TeX dosyası açılıyor
  • Bu özellik, işlev imzası açısından programlama çağrılarında görünür olsa da etkileşimli kullanımda da mümkün olduğunu anlamak için çoğu zaman docstring’in tamamını okumak gerekiyor
  • Dired’ın joker karakter özelliği, consult-find ve embark-export ile kurulan modern Dired akışlarının gölgesinde kalabilir, ancak varsayılan durumda anında çalışır

Tampondaki URI listesi: M-x ffap-menu

  • ffap, imleç konumunun geçerli bir dosya yolu ya da URL olup olmadığını denetleyip açabilen find-file-at-point özelliğidir
  • ffap-menu, tüm tamponu tarayarak dosya yolu veya URL gibi görünen öğeleri bulur ve bunları liste olarak sunar
  • completing-read arayüzünü kullandığı için filtrelenmiş aday listesini bir tampona aktarabilir, bir kısmını ya da tamamını kopyalayabilir, açabilir veya Embark ile işleyebilirsiniz
  • Özellik eklenmiş bağlantıları listeleme

    • EWW gibi bazı Emacs uygulamaları URL’leri düz metin bağlantı olarak değil, metin özelliği olarak ekleyebilir; ffap-menu bunları kaçırır
    • Bunu telafi etmek için ffap-menuden esinlenen kullanıcı tanımlı bir komutla shr-url metin özelliği de toplanabilir
    • Örnek komut my/search-occur-browse-url, hem normal URL regex’lerini hem de shr-url özelliğini bulup tamamlama adaylarına dönüştürür ve seçilen URL’yi browse-url veya browse-url-generic ile açacak şekilde yapılandırılır

Pencere karşılaştırma: M-x compare-windows

  • Emacs’te diff, diff-buffers, diff-backup, dired-diff, vc-diff ve çeşitli ediff-* komutları gibi birçok karşılaştırma komutu bulunur
  • compare-windows, iki pencerenin imleç konumundan itibaren metni karşılaştırır, sonraki uyuşmazlık noktasında durur ve bunu bildirir
  • Karşılaştırılan taraflar etkin pencere ile other-window tarafından seçilecek penceredir; Ediff veya diff kadar güçlü değildir ama çalıştırması daha kolay ve daha hızlıdır
  • Tampon türünden, değişiklik durumundan, dosyadan veya sürüm kontrolü durumundan bağımsız olarak iki pencerede görünen gerçek metni karşılaştırır
  • Aynı tamponun farklı bölümleri iki pencerede gösterilirse aynı tampon içindeki iki metin parçası da karşılaştırılabilir
  • Dizin listeleri de karşılaştırılabilir; örnekte ilk uyuşmazlık olarak dosya değiştirilme zamanı yakalanır
  • Bir önek argümanı verilirse boşluk farkları yok sayılabilir

Dired ile dizin karşılaştırma: M-x dired-compare-directories

  • dired-compare-directories, Dired içinde karşılaştırılacak dizini sorar ve iki Dired listesinde adı farklı olan dosyaları işaretler
  • Bu yaklaşım, en yaygın dizin karşılaştırma kullanım senaryolarını karşılayabilir
  • Dosya düzeyinde karşılaştırma yaptığı için değiştirilme zamanı veya boyut gibi dosya özelliklerini içeren özelleştirilmiş eşleştirme koşulları verilebilir
  • (> mtime2 mtime1) koşulu, daha yakın zamanda değiştirilmiş dosyaları işaretleyebilir
  • (/= size1 size2) koşulu ise adı aynı ama boyutu farklı dosyaları işaretleyebilir
  • Daha etkileşimli bir karşılaştırma gerekirse ediff-directories de kullanılabilir

Tampon değişikliklerini vurgulama: M-x highlight-changes-mode

  • highlight-changes-mode, dosyadaki değişiklik noktalarını vurgulayan bir özelliktir ve diff-buffer-with-file gibi diff komutlarına “canlı” bir alternatif olarak kullanılabilir
  • Varsayılan davranış, mod açıldığı andan kapatıldığı ana kadar olan değişiklikleri vurgulamaktır; yani yalnızca kaydedilmemiş değişiklikleri otomatik vurgulamaz
  • before-save-hook ve after-save-hook kullanılarak kaydetmeden önce vurgulama kapatılıp kaydettikten sonra yeniden açılabilir; böylece yalnızca kayıt öncesi değişiklikleri vurgulayan bir akış kurulabilir
  • Örnek kod, text-mode-hook içinde dosya tamponları için highlight-changes-modeu açıyor ve kaydetme öncesi/sonrası hook’larla vurgulama durumunu ayarlıyor
  • Bu, bağımsız bir highlight-unsaved-mode biçimine getirilirse kaydedilene kadar tüm değişiklikleri vurgulayan bir minör mod haline gelir
  • highlight-changes-next-change ve highlight-changes-previous-change ile sonraki ve önceki değişiklik noktasına gidilebilir
  • highlight-changes-remove-highlight ile görsel vurgulama kaldırılıp yalnızca değişiklik izlemeye dayalı gezinme kullanılabilir

Yedek dosyaları gerçekten kullanışlı hale getirmek: vc-diff ailesi

  • Emacs yedeklerinin sorunu

    • Emacs, varsayılan olarak düzenlenip kaydedilen dosyaların yedeklerini düzenli olarak oluşturur
    • Bu yedek sistemi genelde make-backup-files ile kapatılması gereken can sıkıcı bir özellik olarak anılır
    • Hassas dosyaların diskte başka bir yere kopyalanması güvenlik endişesi yaratabilir
    • Bunun dışındaki durumlarda sorun daha çok yedeklerin çalışma dizinine dağılması ve yedek dosyaları incelemek ya da yönetmek için kullanışlı bir arayüzün olmamasıdır
    • backup-directory-alist, kept-old-versions, kept-new-versions gibi kullanıcı seçenekleriyle yedek konumu ve saklanacak sayı ayarlanabilir
    • Harici backup-walker paketi, yedekler arasında zaman yolculuğu gibi gezinmeye yarayan bir arayüz sunar
  • VC arayüzünü genişletmek

    • Emacs’in yerleşik VC paketi, sürüm kontrollü dosyaların geçmiş sürümlerini görüntülemek için bir arayüz sağlar
    • vc-diff, dosyayı bir önceki sürümle veya belirtilen sürümle karşılaştırır
    • vc-ediff, dosyanın bir önceki sürümüyle veya belirtilen sürümle Ediff çalıştırır
    • vc-revision-other-window, bir önceki ya da belirtilen eski sürümü mevcut dosyanın yanında gösterir
    • Bu arayüz Git ile sınırlı değildir, ancak sürüm kontrolünde olmayan dosyalarda çalışmaz
    • Bu üç VC komutunu aşırı yükleyerek kaydedilmemiş tamponlar, sürüm kontrollü dosyalar ve sürüm kontrolünde olmayan dosya yedekleri tek bir “önceki sürümle karşılaştır” modeli altında birleştirilebilir
    • Kaydedilmemiş dosyalarda vc-diff ve vc-ediff, tampon ile dosyayı karşılaştırır
    • Sürüm kontrollü dosyalarda özgün vc-diff, vc-ediff, vc-revision-other-window aynen çalışır
    • Sürüm kontrolünde olmayan dosyalarda ise en yüksek numaralı yedekle veya önek argümanıyla seçilen numaralı yedekle karşılaştırma yapılır ya da o sürüm gösterilir

apropos ailesi

  • describe-key olan C-h k, bir tuş girdisinin çağırdığı işlevi doğrudan görmeyi sağladığı için son derece kullanışlı bir yardım tuşudur
  • Öğrenilecek ikinci yardım özelliği olarak apropos çok güçlüdür ve ne aramanız gerektiğini bilmediğinizde Emacs işlevlerinin düzenini anlamaya açılan bir kapı olur
  • apropos, tek bir komut değil; apropos-library, apropos-function, apropos-command, apropos-variable, apropos-user-option, apropos-documentation, info-apropos gibi birçok uzmanlaşmış arama komutundan oluşan bir ailedir
  • Örnek yapılandırma, bu komutları C-h a altındaki bir tuş haritasına bağlayarak aproposun yerini alır
  • which-key gibi bir istem gösterici olmasa bile önek tuşu C-h a sonrasında C-h basılırsa kullanılabilir komutların listesi görülebilir
  • customize-apropos, arama terimiyle eşleşen seçenekleri, yüzleri ve grupları toplayıp özel bir customize tamponu oluşturur

find-func araçları: M-x find-function-on-key, M-x find-function

  • Bir tuş bağlamasını beğenmediğinizde veya nasıl çalıştığını öğrenmek istediğinizde, o tuşun çağırdığı komutun tanımına giderek davranışı okuyabilir ya da değiştirebilirsiniz
  • Genel akış, describe-key veya C-h k ile tuşun çağırdığı komutu görmek ve ardından s tuşuna basarak kaynağa gitmektir
  • find-function-on-key, bu ikinci adımı kısaltarak tuş bağlamasından doğrudan işlevin kaynak koduna gider
  • Örnek yapılandırma, help-map içinde C-h M-k tuşunu find-function-on-key işlevine bağlar

copy-from-above-command ve duplicate-dwim

  • Emacs’e yakın zamanda, birçok kullanıcının uzun süredir kullandığı metin çoğaltma komutları eklendi
  • copy-from-above-command, geçerli satırın üstündeki ilk boş olmayan satırdan metin kopyalar ve Vim’deki C-yye benzer
  • duplicate-dwim, geçerli satırı veya etkin bölgeyi mevcut satırın altına kopyalar ve Vim’deki yy<N>pye benzer
  • copy-from-above-command, önek argümanı kadar üst satırdan karakter kopyalar; ancak örnek advice, C-u önek argümanını “üstteki satırın tamamını kopyala ve yorum satırı yap” davranışına çevirir
  • Sayısal önek argümanı C-<N> kullanılırsa, eskisi gibi üstten belirli sayıda karakter kopyalanabilir
  • duplicate-dwim sonrasında imlecin özgün metinde mi yoksa kopyada mı kalacağı seçilmelidir ve bu bir kullanıcı seçeneğiyle belirlenebilir
  • Örnek yapılandırma, duplicate-region-final-position ve duplicate-line-final-position değerlerini -1 yaparak imleç ile bölgenin çoğaltılmış metne taşınmasını sağlar

Tuş geçmişini makroya dönüştürmek: M-x kmacro-edit-lossage

  • Emacs klavye makroları, yalnızca metin dönüşümlerini değil, fare tıklamaları dahil Emacs içindeki tüm eylem dizilerini yakalayıp yeniden oynatabilir
  • Klavye makroları güçlüdür, ancak kaydı başlatmadan önce tekrar edilebilirliği öngörmek ve hatasız genellenebilir bir işlem kurmak gerektiğinden bilişsel yükleri yüksektir
  • Vim’in . komutu ve Emacs’in dot-mode paketi, düzenleme tekrarları sorununu hafifletir; ancak tam klavye makrolarıyla aynı kapsama sahip değildir
  • view-lossage (C-h l), son yaklaşık 300 tuş vuruşunun kaydını gösterir
  • kmacro-edit-lossage, bu tuş geçmişinden istenen anda makro oluşturmayı mümkün kılar
  • Lossage gerçekten düzenlenebilir olduğu için, makro oluştururken kaydın içine yeni komutlar eklenebilir
  • Daha önce tanımlanmış makrolar edit-kbd-macro (C-x C-k e) ile daha sık düzenlenebilir, ancak kmacro-edit-lossage nadir durumlarda az önce yaptığınız karmaşık işi tekrarlanabilir hale getirmede yararlıdır
  • Genellenebilir bir makro oluşturmak için lossage içine çoğu zaman kbd-macro-query çağrısı eklemek gerekir

subword-mode, superword-mode, sözcük dilbilgisi

  • Emacs’in sözcük tabanlı gezinme ve düzenleme komutları, major mode’a göre değişen syntax table kullanır; neyin sözcük sayılacağını kullanıcı ayarlayabilir
  • subword-mode etkin olduğunda CamelCase simgesinin her bileşeni bir sözcük olarak ele alınır
  • Örneğin GtkWindow, Gtk ve Window; EmacsFrameClass, Emacs, Frame, Class; NSGraphicsContext ise NS, Graphics, Context olarak ayrılır
  • superword-mode altında this_is_a_symbol gibi snake_case simgeleri tek bir sözcük olarak ele alınır
  • Pratik kullanımda simge işleme zaten *-sexp komutlarıyla iyi desteklendiğinden superword-mode, subword-mode kadar kullanışlı değildir
  • Major mode’un syntax table’ında birkaç dakikalık değişiklik bile yapısal gezinmede yaşanan sıkıntıları azaltabilir
  • Lisp ailesi bağlamlarında : karakterini sözcük oluşturan bir karakter yapmak, :foo gibi anahtar sözcükleri backward-kill-word ile işlemeyi kolaylaştırır
  • Org mode’da = ve ~ ayraçlarını sözcük oluşturan karakterler olarak ele alacak şekilde değişiklik yapılabilir
  • Karakter sözdizimi belirtme yöntemi describe-syntax (C-h s) ve modify-syntax-entry içinde görülebilir

Görüntü gösterimini değiştirme

  • Emacs’in görüntü gösterdiği neredeyse her yerde, imleci görüntünün üzerine getirip i tuşuna basarak gösterimi değiştirebilirsiniz
  • Org mode’daki görsel bağlantı önizlemelerinde ve Elfeed öğe tamponundaki görsellerde de aynı denetimler kullanılabilir
  • i + ve i - yakınlaştırma ve uzaklaştırma için kullanışlıdır, i r ise görüntüyü 90 derece döndürür
  • i c ile görüntü kırpılabilir; ayrıntılı tuşlar M-x describe-keymap RET image-map içinde görülebilir
  • Tarayıcılarda ve diğer uygulamalarda alışık olunan C-<wheel> kısayolu da kullanılabilir
  • repeat-mode kullanıldığında, ilk çağrıdan sonra i öneki olmadan yalnızca +, -, r ile tekrar yapılabilir
  • Bu özellik, görüntünün üzerine yerleştirilmiş bir tuş haritası olarak sunulur ve ayrıca etkinleştirme gerektirmez
  • Değiştirilen şey diskteki görüntü dosyası değil, yalnızca gösterim durumudur
  • Web sayfalarında ve işlenmiş HTML tamponlarında z (shr-zoom-image), büyük görsellerin gösterim sınırlarını hafifletmek için görüntüyü birden çok yatay dilime böler ve boyutunu döngüsel olarak değiştirir

Tüm metni göster: M-x visible-mode

  • Emacs, arabellek metnini seçmeli olarak görünmez yapabilir; bu özellik Magit section, Outline mode ve Org mode gibi katlama davranışlarının temelini oluşturur
  • Katlama işlevi sunan kipler genellikle katlama durumunu değiştiren tuş atamaları sağlar ve TAB çoğu durumda çalışır
  • Kipe özgü tuş atamalarını öğrenmek zorsa ya da bunları yeterince sık kullanmıyorsanız, visible-mode ile gizli metnin tamamını görebilirsiniz
  • visible-mode, tüm arabellek için metin görünmezliğini devre dışı bırakır ve tekrar çalıştırıldığında önceki görünmezlik durumunu geri yükler
  • Dinamik katlama arayüzü olan arabelleklerde, visible-mode açıkken ekran bozulmuş gibi görünebilir
  • Bu özellik daha çok geçici bir çözüm veya hata ayıklama aracı gibidir, ancak tek komutla arabellekteki tüm metni tutarlı biçimde ortaya çıkarabilir

Görünmez metni yok sayma: isearch-toggle-invisible

  • Isearch gibi bazı Emacs komutları, gerçek belgenin tamamında kolayca arama yapılabilsin diye varsayılan olarak metin görünmezliğini yok sayar
  • Görünen arabellek durumu bir gezinme rehberi işlevi gördüğünde, katlanmış metni otomatik olarak açan arama beklenmedik şekilde davranabilir
  • Isearch’ü aramadan çok bir gezinme aracı olarak kullanırken, katlanmış bölgelerdeki eşleşmelere gitmek sorun yaratır
  • Isearch sırasında M-s i tuşuna atanmış isearch-toggle-invisible ile görünmez metinde arama yapılıp yapılmayacağını değiştirebilirsiniz
  • Örnekte, Org belgesinin son başlığına gitmek için zero aranıyor, ancak arama katlanmış bölgedeki bir eşleşmeye atlıyor; ardından yeniden arama yapılıp M-s i basılarak yalnızca görünür metindeki eşleşmeler arasında geziliyor
  • Isearch davranışını değiştiren tuşlar, C-s varsayılan atamasına karşılık gelen M-s tuş haritası altında bulunur

Cetvel: M-x ruler-mode

  • Emacs’te, geçmişteki WYSIWYG kelime işlem özelliklerinin bir kalıntısı olarak center-* komutları gibi işlevler hâlâ bulunur
  • center-* komutları satırı, paragrafı veya bölgeyi fill-column temel alınarak ortalar; kod içindeki süslü yorumlar gibi amaçlarla kullanılabilir
  • Görüntü margin ve fringe genişlikleri, birçok özelliğin sığabileceği ekran alanlarıdır, ancak görüntü margin genişliğini doğrudan değiştirmek kolay değildir
  • set-left-margin ve set-right-margin, görüntü margin genişliğini değiştiren komutlar değildir; gerçek arabellek metnini girintileyen center türü komutlar gibi davranırlar
  • Görüntü margin ayarları için doğrudan bir komut yoktur ve etkinin pencere yeniden çizilene kadar uygulanmaması gibi bir sorun vardır
  • ruler-mode açıldığında kullanım bilgisi, header-line üzerindeki araç ipucunda görülebilir
  • S-<mouse-1> ve S-<mouse-3> ile arabelleğin sol ve sağ marginleri ayarlanabilir
  • <mouse-2> sürüklenerek fill-column da ayarlanabilir
  • Hazır genişlikleri açıp kapatmaktan ziyade marginleri anlık olarak değiştirmek istiyorsanız, visual-fill-column veya olivetti gibi paketlere göre ruler-mode daha kullanıcı dostu olabilir

Metni yeniden doldurma: M-x refill-mode

  • Emacs, metni doldurmak için çeşitli fill-* komutları ve yazı girerken satır sonlarını yöneten auto-fill-mode sunar
  • auto-fill-mode, Emacs öğreticisinde erken aşamada ele alınacak kadar metin doldurmayı önemli bir düzenleme özelliği olarak görür
  • auto-fill-mode aslında tam otomatik değildir; yalnızca geçerli satırı sarar ve yapıştırma gibi işlemlerle önceki paragraflarda oluşan kaymaları elle düzeltmek gerekir
  • refill-mode, belgenin fill-column ile uyumlu kalmasını sağlayan, Emacs’in gerçekten otomatik metin doldurma özelliğidir
  • M-x refill-mode çalıştırıldığında bu davranış kullanılabilir olur

Tüm pencereleri birlikte kaydırma: M-x scroll-all-mode

  • scroll-other-window, seçili olmayan başka bir pencereyi odak değiştirmeden kaydırmayı sağlar; bu da mevcut pencerede çalışırken sonraki penceredeki referans materyale bakmak için kullanışlıdır
  • follow-mode, tek bir arabelleği birden fazla pencerede kesintisiz biçimde görüntüleme işlevidir
  • scroll-all-mode daha az bilinir, ancak çerçevedeki tüm pencereleri aynı anda kaydırır
  • Birbirine senkron bakılması gereken arabellekleri incelerken faydalıdır; örnekte Ediff oturumuna girmeden bir dosyanın iki sürümünü gözle karşılaştırmak için kullanılır
  • Örnek akışta mevcut dosyanın belirli bir eski yedeği vc-revision-other-window ile açılır, ardından scroll-all-mode etkinleştirilir ve sonrasında normal şekilde kaydırıldığında tüm pencereler birlikte hareket eder
  • Diğer pencereyi kaydırma ve master-mode

    • Ekranda ikiden fazla pencere varsa ve kaydırmak istediğiniz pencere Emacs’in seçtiği next-window değilse sorun çıkabilir
    • Yerleşik master-mode, başka arabelleklerden kaydırılabilecek arabelleği önceden ya da anında belirlemeyi sağlar
    • Daha doğrudan bir yöntem, kaydırılacak pencereyi bulma stratejisini ayarlamaktır
    • (setq other-window-scroll-default #'get-lru-window) her zaman en uzun süredir kullanılmayan pencereyi kaydırır
    • Referans materyalin bulunduğu ve nadiren seçilen bir pencereyi kaydırırken bu yaklaşım faydalıdır
    • Sık düzenlenen iki pencere, birden fazla pencere arasında yer alıyorsa, en son kullanılan pencereyi diğer pencere olarak kaydıracak bir lambda işlevi ayarlanabilir
    • Bu tür ayar kombinasyonları, scroll-other-window komutunun amaçlanan pencereyi kaydırmasına yardımcı olur

Çıkışı reddetme: M-x emacs-lock-mode

  • Emacs, kaydedilmemiş dosyalar olduğunda her dosyayla ne yapılacağı yanıtlanana kadar çıkmayı reddeder
  • emacs-lock-mode, bu fikri genişleterek kullanıcının istediği arabelleği kilitlemesine izin verir
  • Kilit açılana kadar ilgili arabellek kill işlemini reddeder ve Buffer "*scratch*" is locked and cannot be killed benzeri bir mesaj verir
  • Kilitli bir arabellek varsa Emacs de çıkmayı reddeder ve Emacs cannot exit because buffer "*scratch*" is locked benzeri bir mesaj gösterir
  • Bu, dosya ziyaret etmeyen arabelleklerdeki bilgilerin yanlışlıkla kaybedilmesini önlemek veya o arabellekle ilgili yapılacak iş kaldığını hatırlatmak için kullanışlıdır
  • Org-capture sonrasında ilk sorun daha nadir görülse de shell·compilation arabellekleri, web siteleri ve diğer özel uygulamaların çıktı ya da durumlarını kaybetmemek açısından hâlâ yararlıdır

Çerçeveyi geri getirme: M-x undelete-frame-mode, M-x undelete-frame

  • Özenle yapılandırdığınız bir Emacs çerçevesini yanlışlıkla kapattığınızda, undelete-frame ile geri getirebilirsiniz
  • Bu özelliği kullanmak için undelete-frame-mode açık olmalıdır
  • Yerleşik winner ve tab-bar-historynin pencereler için sunduğunu, çerçeveler için sağlar
  • undelete-frame-mode Emacs ile birlikte açık tutulursa, çerçeve kapatma konusunda daha az endişe duyabilirsiniz
  • Silinen çerçevelerden en fazla 16 tanesi geri yüklenebilir

Kalan özellikler ve dışarıda bırakılanlar

  • Son 6 yılda karşılaşılan özelliklerden 2026’daki Emacs kullanım gerçekliğinde ayakta kalanların sayısı 20
  • Tesadüfen keşfedilen birçok Emacs kütüphanesi, sıradan kullanıcı ihtiyaçlarına yönelik sağlam çözümler olmaktan çok yazılım arkeolojisi açısından ilgi çekiciydi
  • allout-mode, Org mode’a benzeyen paralel evrendeki bir outline yöneticisidir ve Org’un speed-key ile alt ağaç bazlı şifreleme gibi özelliklerine sahiptir
  • shadowfile, Emacs içinde unison uygular ama ne kadar faydalı olduğu belirsizdir
  • double-mode, quailden önce gelen, tuş dönüşümüne dayalı bir klavye dışı karakter giriş yöntemidir
  • bs kütüphanesi daha akıllı bir list-buffers komutu oluşturma girişimiydi, ancak ibuffer daha iyi olduğu için artık kullanmak için bir neden kalmadı
  • electric-pair-mode ile bölgeyi ayraçlarla sarmalama gibi yüzeyde yararlı görünen bazı özellikler de, karmaşıklıklarına kıyasla düşük fayda nedeniyle dışarıda bırakıldı
  • Bu tür kullanım alanlarında wrap-region, smartparens, embrace gibi harici paketler daha iyidir
  • appt gibi Org ve Org’a komşu yerleşik kütüphaneler ilginçtir, ancak ayrı bir yazıda ele alınacak kadar geniş kapsamlıdır
  • thunk gibi çoğunlukla Elisp geliştiricileri için yararlı kütüphaneler de ayrı bir derleme gerektirir
  • Emacs ile gelen lisp dizini çok büyük değildir, ancak faydalı varsayılan özelliklerin keşfedilmeye devam edilmesi için hâlâ alan vardır

1 yorum

 
GN⁺ 4 시간 전
Lobste.rs görüşleri
  • find-file(C-x C-f) içinde *foo*.txt gibi joker karakterle birden fazla dosya açmak genelde hatayla yapılıyor; bu yüzden joker karakter kullanıldığında find-fileın doğrudan dired açması için find-file-noselecte advice-add ekledim
    file-expand-wildcards sonucu 2 veya daha fazla olduğunda dired-noselecte geçiriyor, aksi halde özgün find-file-noselecti çağırıyor

  • ruler-mode gerçekten çok eğlenceli. Emacs'te böyle bir WYSIWYG özelliği olduğunu hiç bilmiyordum; Emacs gerçekten tuhaf ama keyifli bir yazılım

  • Sadece sade Emacs kullanırken neredeyse her şeye baktığımı sanıyordum ama keşfedilecek çok daha fazla şey varmış. ruler-mode yazı yazmak için epey hoş

    • Bu tür özelliklerin Emacs'in kendisinde yer alması şaşırtıcı. İnsan kolayca Emacs'in sadece böyle şeyler yapmaya yarayan elisp API'lerini sunduğunu düşünebiliyor, ama meğer birçok varsayılan aracı gözden kaçırıyormuşum
      Eskiden Magit'i çok daha fazla kullanırdım ama artık yerleşik vc-mode ve diff araçlarına geçtim; ikisi de gayet iyi çalışıyor ve memnunum
  • Böyle yazıları seviyorum. Emacs ya da Neovim gibi karmaşık ve özelleştirilebilir düzenleyiciler kullanırken, insanların varsayılan düzenleyicinin neler yapabildiğini anlamadan önce şişkin dağıtımları kurup fazla hızlı başlaması sık görülüyor
    Vaktiniz varsa kılavuzu okuyup ayarlarınızı baştan kendiniz inşa etme süreci oldukça tatmin edici olabiliyor. Az bilinen Emacs işlevlerinden biri finder-list-keywords; çalıştırdığınızda bulunması zor Emacs özelliklerini gezebileceğiniz bir menü açıyor. Örneğin yerleşik 24 oyun olduğunu biliyor muydunuz?