Cukup banyak mode Emacs menggunakan bentuk (seperti): antarmuka kustomisasi adalah salah satunya, mode Pesan (baca: bagian tajuknya) adalah yang lain; ada lebih banyak dari mereka, sayangnya tidak selalu sangat mirip. Yang dimaksud dengan "formulir" di sini adalah buffer dengan bagian hanya baca dan tempat yang ditunjuk untuk memasukkan teks; mungkin atau mungkin tidak mengandung tombol (mungkin harus menerima C-c C-c
sebagai kunci konfirmasi / komit, terlepas dari keberadaan tombol OK ).
Saya sangat tertarik pada pelengkapan otomatis di bidang (dan khususnya, bidang yang memungkinkan dengan daftar nilai dari beberapa set yang ditunjuk, katakanlah, dipisahkan dengan koma). Pertanyaan saya adalah: apakah ada perpustakaan Emacs yang memudahkan pembuatan (dengan "mudah", maksud saya tidak menciptakan kembali roda) pembuatan bentuk seperti itu, atau haruskah saya membuat kode sendiri semuanya?
(Saya membayangkan bahwa apa yang harus saya lakukan dalam kasus terakhir adalah (1) mengatur beberapa bagian dari buffer read-only, (2) menyiapkan mode utama khusus, sehingga misalnya TAB
dan S-TAB
beralih antara "bidang", dan (3) mungkin menggunakan sesuatu seperti Icicles atau Helm untuk pelengkapan otomatis.)
Jawaban:
Lihat pustaka
cus-edit.el
danwid-edit.el
(dan pustaka tingkat atascustom.el
danwidget.el
, serta pustaka komponen terkait), yang disertakan dengan GNU Emacs. Yang pertama memanfaatkan yang terakhir. Yang terakhir mendefinisikan hal-hal entry-entry dasar (dan tidak-begitu-dasar), yang disebut " widget ", dalam hierarki. Anda dapat menggunakan widget dan fungsi yang telah ditentukan ini di perpustakaan untuk membuat widget dan jenis widget Anda sendiri.Namun, berhati-hatilah bahwa kode perpustakaan-perpustakaan ini, khususnya yang ada
wid-edit.el
, tidak mudah diikuti. Taruhan terbaik Anda adalah memulai dengan menggunakan kembali widget yang ada atau menggunakan kode definisi widget yang ada sebagai panduan.(Dua perpustakaan ekstensi kecil untuk ini adalah
cus-edit+.el
danwid-edit+.el
. Mereka juga menyajikan beberapa contoh penggunaan.)Ada manual Info untuk widget, didistribusikan dengan GNU Emacs, berjudul " Perpustakaan Widget Emacs ".
Ada juga perpustakaan
forms.el
, termasuk dengan GNU Emacs, tapi saya tidak terbiasa dengannya. Mungkin orang lain memiliki sesuatu yang berguna untuk dikatakan tentang hal itu. Ada manual untuk formulir, didistribusikan dengan GNU Emacs, berjudul " Mode Bentuk ".sumber
\(custom\|widget\).el
dan\(cus\|wid\)-edit.el
sedikit? Saya menemukan terutama bagian dari Widget pengguna dimengerti:(require 'widget) (eval-when-compile (require 'wid-edit))
.cus-edit.el
danwid-edit.el
. File lain yang Anda sebutkan adalah file tingkat atas;*-edit.el
file - file tersebut memiliki kode yang saya minati. Tidak lebih dari itu; Maaf. Kesulitan sebenarnya adalah kode itu sendiri, yang menggunakan gaya semi-OOP tertentu yang tidak cocok untuk dokumentasi diri Emacs (dengan kata lain) atau ke debugger Emacs. Anda dapat menyelidiki sendiri, atau mungkin mencoba menghubungi penulis (semoga sukses dengan itu!). Mungkin orang lain di sini akan membantu.