Emacs'ta giriş alanları için kütüphane var mı?


10

Oldukça az sayıda Emacs modu (bir şey gibi) formlar kullanır: özelleştirme arayüzü bunlardan biridir, Mesaj modu (okuma: başlık kısmı) başka bir moddur; bunlardan daha fazlası var, ne yazık ki her zaman çok benzer değil. Bir "form" ile ifade etmek gerekirse, burada, salt okunur bölümleri ve metin girmek üzere belirlenmiş yerleri olan bir tampon anlamına gelir; düğmeler içerebilir veya içermeyebilir ( C-c C-cbir OK düğmesinin varlığına bakılmaksızın muhtemelen onay / taahhüt anahtarı olarak kabul etmelidir ).

Özellikle alanlardaki otomatik tamamlama ile ilgileniyorum (ve özellikle , virgülle ayrılmış bazı belirlenmiş kümelerden değer listeleri içeren alanları etkinleştirmekle ilgileniyorum). Sorum şu: bu tür formların oluşturulmasını kolaylaştıran herhangi bir Emacs kütüphanesi var mı?

(Ben yalnızca salt, (2), özel bir ana mod hazırlamak ör böylece tampon bazı bölümlerini set) (Ben ikinci durumda ne yapması gerektiğini olurdu 1 hayal TABve S-TAB) ( "alanlar" arasında geçiş ve 3 otomatik tamamlama için buz sarkıtları veya dümen gibi bir şey kullanabilirsiniz.)


1
Başlığınızı girdi alanları söyleyecek şekilde değiştirdi. Formların elisp'te karışıklığa yol açabilecek çok özel bir anlamı vardır.
Malabarba

2
Ve evet, yerleşik bir widget kütüphanesi var. Ama bunun hakkında hiçbir şey bilmiyorum.
Malabarba

@Malabarba: teşekkürler, bu muhtemelen daha iyi bir ifade.
mbork

(Emacs'ın kendisi bu anlamda "form" kelimesini kullanmasına rağmen - Drew'un cevabında belirtilen widget kılavuzuna bakın!)
mbork

Yanıtlar:


8

Kütüphaneleri bakın cus-edit.elve wid-edit.el(ve, üst düzey kütüphaneleri custom.elve widget.elGNU Emacs'ın içerdiği ve ilişkili parça kütüphaneleri). Birincisi ikincisini kullanır. İkincisi, " widget " olarak adlandırılan temel (ve çok da temel olmayan) form giriş öğelerini bir hiyerarşide tanımlar . Kendi pencere öğelerinizi ve pencere öğesi türlerinizi oluşturmak için bu önceden tanımlanmış pencere öğelerini ve işlevleri kitaplıkta kullanabilirsiniz.

Ancak, bu bu kütüphanelerin kod, özellikle dair uyarı wid-edit.elolduğunu çok kolay değil takip etmek. En iyi seçeneğiniz, mevcut widget'ları yeniden kullanarak veya mevcut widget tanım kodunu kılavuz olarak kullanarak başlamaktır.

(Bunun için iki küçük eklenti kütüphanesi cus-edit+.elve vardır wid-edit+.el. Ayrıca bazı kullanım örnekleri sunarlar.)

" The Emacs Widget Library " başlıklı GNU Emacs ile dağıtılan widget'lar için bir Bilgi kılavuzu vardır .

Ayrıca forms.elGNU Emacs ile birlikte bir kütüphane de var , ama ben buna aşina değilim. Belki de başka birinin bu konuda söyleyecek faydalı bir şeyi vardır. GNU Emacs ile dağıtılan formlar için " Formlar Modu " başlıklı bir el kitabı vardır .


2
Forms.el hakkında biraz daha: stackoverflow.com/questions/10166600/…
phils

1
@ Çekti: Cevabınız için teşekkürler! Eğer arasındaki ilişkiyi açıklayabilir misiniz \(custom\|widget\).elve \(cus\|wid\)-edit.elbiraz? Ben Widget'lar manuel anlaşılmaz özellikle bu bölümü bulun: (require 'widget) (eval-when-compile (require 'wid-edit)).
mbork

1
İlk olarak, bu konuda uzman değilim. Bir şey değiştirmek gerektiğinde wrt Özelleştirmek içine daldım cus-edit.elve wid-edit.el. Bahsettiğiniz diğer dosyalar üst düzey dosyalardır; *-edit.eldosyalarım ilgilenen olduğunu koduna sahip Dunno çok daha fazlası.; afedersiniz. Asıl zorluk, Emacs'ın kendi belgelerine (hafifçe koymak için) veya Emacs hata ayıklayıcısına iyi bir şekilde ödün vermeyen belirli bir yarı OOP stili kullanan kodun kendisidir. Kendi başınıza araştırabilir veya belki de yazarla iletişime geçmeye çalışabilirsiniz (bu konuda iyi şanslar!). Belki buradaki diğer insanlar yardım edebilir.
Drew
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.