Gün boyunca sürekli olarak işlevler ve değişkenler için dokümanları aramak için C-h fveya C-h v( describe-functionve describe-variable) kullanıyorum . Sık sık, ihtiyacım olan tüm bilgileri alamazsam, sonunda dosya bağlantısını tıklayacağım:
some-random-command is an interactive compiled Lisp function in `some-mode.el'.
kaynak koduna gidin. Bu, kurulu paketler için çalışır, ancak yerleşik paketler için işe yaramaz gibi görünüyor. Örneğin, komut için yardım sayfasının üst kısmında tek describe-functionaldığım şey:
describe-function is an interactive compiled Lisp function.
kaynak koduna bağlantı yok. Yerleşik bir paketin kaynak koduna hızlı bir şekilde gitmenin bir yolu var mı?
Örneğin, kaynak kodu bulabilirsiniz biliyorum /usr/share/emacs/24.5/lispve bu dizine hızlı bir şekilde erişmek için herhangi bir sayıda yol ile gel, ama yerleşik bir işlev / değişken tanımına gitmek için hızlı ve kolay bir yolu olup olmadığını merak ediyorum kaynak kodu. Teşekkür ederim!
M-x describe-function: define-function, 'help-fns.el'de etkileşimli otomatik yüklenen derlenmiş Lisp işlevidir. Ve oradan tıklayabilirim (veya enter tuşuna basabilirim) help-fns.elve daha sonra kodun ilgili bölümüne taşınırım. Belki birden fazla Emacs sürümünüz var ve şu anda kullandığınız kaynak kodun tamamı yüklü değil mi?
emacs -Q(init dosyası yok) kullanarak başlattığınızda bu davranışı yaşarsanız veya ile başlayan bir tarifle emacs -Q(örneğin hangi kitaplıkları yüklediğinizi ve bunları nasıl yüklediğinizi söyleyerek) yeniden çoğaltabiliyorsanız, lütfen hata bildirmeyi düşünün raporu: M-x report-emacs-bug.
.eldosyaları (isteğe bağlı olarak işlenir) dosyalardan ayırır .elc(zorunlu), böylece bunları almak için bir veya daha fazla ek paket yüklemeniz gerekir. İşletim sistemi paket yöneticinizden Emacs aldıysanız, belki de bunu açıklar.
/usr/bin/emacsve /usr/bin/emacsclient.app ile biten bir OSX uygulama klasöründe güzelce paketlenmiş bir sürüme sahibim - yani, /Applications/Emacs.app(Emacs.app'ın içinde ikili dosyalar ve tüm kaynak kod dosyaları).
M-x find-function;M-x find-variable;M-x find-face;M-x find-library. Her zaman erişebilmem için her zaman tam bir Emacs yüklemesi kullanıyorum ve kendi Emacs'ımı oluşturduktan hemen sonra C-kaynak kodunu kopyalayıp C-Kaynak kodu tanımlarını da bulabilmek için konumunu ayarladım.find-function-C-source-directoryKopyaladıktan sonra C-kaynak kodunun konumunu ayarlamak için değişkene bakın .