Emacs Lisp Elements
(protesilaos.com)- Emacs Lisp, Emacs’i genişletmek için kullanılan bir programlama dilidir; kullanıcıların Emacs’i kişiselleştirmesine ve daha verimli kullanmasına yardımcı olur
- Emacs Lisp, tüm işlemleri fonksiyon çağrılarıyla gerçekleştirir; kullanıcılar da tuş atamaları veya komutlar aracılığıyla fonksiyonları etkileşimli olarak çalıştırabilir
- Emacs Lisp fonksiyonları girdi alıp çıktı üretir ve ortamı etkileyen yan etkilere sahip olabilir
- Buffer’lar veri yapısı olarak kullanılır; metin özellikleri ve buffer-local değişkenler üzerinden çeşitli işlemler yapılabilir
- Emacs Lisp, kod yapısını listeler ve sembollerle kurar; kısmi değerlendirme ve makrolarla kod genişletilebilir
Emacs Lisp Elements
Emacs Lisp programlama dilinin büyük resmi
- Protesilaos Stavrou tarafından yazılan bu kitap, Emacs Lisp programlama diline dair genel bir çerçeve sunuyor
- Emacs, Emacs Lisp’i yorumlayarak çalışan programlanabilir bir metin editörüdür
- Kullanıcılar Emacs’i kişiselleştirerek verimli bir çalışma ortamı oluşturabilir
- Emacs Lisp sayesinde kullanıcılar tekrarlayan işleri otomatikleştirerek üretkenliğini artırabilir
- Bu kitap, hem yeni başlayanlar hem de ileri düzey kullanıcılar için çeşitli konuları ele alır
Emacs Lisp değerlendirmesi
- Emacs’teki tüm işlemler Emacs Lisp fonksiyon çağrıları üzerinden gerçekleşir
- Kullanıcılar tuş atamaları veya komutlar aracılığıyla fonksiyonları etkileşimli olarak çalıştırabilir
- Emacs, buffer içindeki Elisp kodunu değerlendirebilir ve çeşitli komutlarla kod çalıştırılabilir
eval-expressionkomutuyla mevcut buffer’da Elisp kodu değerlendirilebilir- Emacs, yerleşik belgelemeyle mevcut durumunu raporlar
Yan etkiler ve dönüş değerleri
- Emacs Lisp fonksiyonları girdi alıp çıktı üretir ve ortamı etkileyen yan etkilere sahip olabilir
- Bir fonksiyonun dönüş değeri başka bir fonksiyonun girdisi olarak kullanılabilir
- Yan etkiler sayesinde Emacs’in durumu değiştirilerek istenen işlemler gerçekleştirilebilir
- Yan etkiler dikkatli kullanıldığında Elisp’in potansiyelinden en üst düzeyde yararlanılabilir
- Deneyim kazandıkça yan etkilerle dönüş değerlerini uygun biçimde ele alma sezgisi gelişir
Veri yapısı olarak buffer
- Buffer, veriyi karakter dizileri olarak saklar ve çeşitli fonksiyonlar buffer içindeki konumları döndürür
- Buffer içeriği string olarak çıkarılabilir veya belirli konumlar arasındaki alt string elde edilebilir
- Sonuçlar buffer’da gösterilebilir ya da buffer ile ilişkili değişkenler ayarlanabilir
- Buffer, değişken demeti gibi davranır ve buffer-local değerlere sahip olabilir
- Emacs pencereleri ve frame’leri de veri yapısı olarak kullanılabilir
Metnin özellikleri
- Metin özelliklere sahip olabilir ve Emacs Lisp aracılığıyla bu metadata incelenebilir
- Metin özellikleri, sözdizimi vurgulama gibi etkiler sağlar
- Kullanıcılar
describe-charkomutuyla imlecin bulunduğu konumdaki karakterin özelliklerini inceleyebilir - Kullanıcılar kendi major mode’larını yazarak metin özelliklerini elle ekleyebilir
- Metin, basit karakterlerden ibaret olmanın ötesinde bilgi taşıyabilir
Semboller, dengeli ifadeler, alıntılama
- Emacs Lisp, çok sayıda parantez kullanan bir dildir; bu da kod yapısını anlamayı kolaylaştırır
- Listeler fonksiyon çağrısı olarak değerlendirilebilir ya da veri olarak döndürülebilir
- Bir listeyi değerlendirmemek için tek tırnak kullanılır
carvecdrfonksiyonları listenin ilk öğesini ve geri kalanını döndürür- Emacs Lisp, makrolar aracılığıyla kodu genişletebilir
Liste içindeki kısmi değerlendirme
- Emacs Lisp kodu değerlendirilebilir veya olduğu gibi kullanılabilir
- Bir liste kısmen değerlendirilerek yalnızca belirli öğeler değerlendirilebilir
- Backtick(`) ve virgül(,) kullanılarak listenin içindeki belirli öğeler değerlendirilebilir
,@kullanılarak listenin dış parantezleri kaldırılabilir- Kısmi değerlendirme, daha yaygın olarak makrolarda kullanılır
Makro veya özel biçim içindeki değerlendirme
- Emacs Lisp kodunun temel durumu, değerlendirilen ya da değerlendirilmeyen listelerdir
- Makrolar, kodun başka bir koda genişletilip sonra değerlendirilmesini sağlayan bir şablon sistemidir
- Makroların içinde alıntılama farklı şekilde ele alınabilir
- Makrolar, kodun niyetini daha açık ifade etmeyi ve optimizasyonu mümkün kılar
- Makrolar sayesinde kodun esnekliği ve yeniden kullanılabilirliği artırılabilir
Henüz yorum yok.