Bagaimana saya bisa tahu paket emacs bawaan mana yang perlu 'diharuskan?

8

Saya membaca Changelog untuk emacs 24.4 ( C-hn) dan mencoba melihat apa fitur Notifikasi File. Saya mencoba melakukan C-hvvariabel terkait auto-revert-use-notifytetapi tidak ada yang muncul.

Saya kemudian mencari nama variabel dalam kode sumber emacs dan menemukan bahwa itu digunakan dalam lisp/autorevert.el. Setelah melakukan (require 'autorevert), semua fungsi dan variabel yang mendasarinya ditetapkan.

Pertanyaan: Bagaimana saya tahu jika dan apa yang harus requiresaya lakukan jika saya ingin menggunakan fitur bawaan emacs yang saat itu tidak aktif? Apakah ada daftar paket yang tersedia?

Kaushal Modi
sumber
Saya sering menggunakan helm untuk mencari tahu apa jenis perintah / fungsi / variabel yang tersedia untuk saya. Ternyata kadang-kadang pengaturan yang saya inginkan adalah "built-in", tetapi saya harus requiremengemasnya terlebih dahulu.
nispio

Jawaban:

6

Jawabannya, sejauh yang saya tahu, untuk pertanyaan Anda adalah " Anda tidak bisa tahu " dan " Tidak ada daftar perpustakaan seperti itu ."

aproposdan perintah serupa hanya didasarkan pada apa yang saat ini dimuat atau dimuat secara otomatis, bukan apa yang didistribusikan dengan Emacs. Kecuali jika ada sesuatu (a) bawaan (yaitu, dalam kode C), (b) tersedia dari pustaka yang sudah dimuat, atau (c) diisi-otomatis, itu tidak diambil oleh perintah seperti itu.

Dalam hal ini, satu-satunya jalan Anda adalah mencari kode sumber (sejauh yang saya tahu). Grepping adalah salah satu cara untuk melakukan itu.

Jika variabel seperti auto-revert-use-notify(yang merupakan opsi pengguna) secara eksplisit disebutkan dalam Emacs NEWS ( C-h N), maka akan lebih bagus jika menyebutkan bahwa dikaitkan dengan pustaka sumber yang mendefinisikannya, sehingga Anda bisa menekan RETatau mengklik mouse-2namanya untuk membuka file perpustakaan ke definisinya. Anda mungkin ingin menggunakannya M-x report-emacs-buguntuk mengajukan itu sebagai permintaan tambahan.

(Mungkin juga berguna untuk memiliki perintah untuk melakukan itu secara umum: mencari variabel atau definisi fungsi dalam kode sumber terdistribusi, tanpa perpustakaan perlu dimuat. Dalam hal ini, Anda tahu nama variabel yang tepat, tetapi harus grepmenemukan di mana ia didefinisikan.)

Drew
sumber
Kedengarannya sudah saatnya untuk require+paket yang memungkinkan Anda menelusuri simbol paket yang belum dimuat. ;-)
nispio
@nispio: Lakukan! Dengan perilaku opsional untuk mencari (1) perpustakaan yang disediakan dengan distribusi Emacs atau (2) perpustakaan di perpustakaan Anda load-path. ;-) (Tapi perpustakaan bernama apropos+.elsudah ada, namun minimal, dan ini bukan tentang require.)
Drew