Yük dosyası ve yük arasındaki fark


17

Her iki işlevin de belgelerini inceledim ama fazla bilgi vermiyorlar. loadC kaynak kodunda yerleşik bir işlev olmasının yanı sıra load-file etkileşimli bir liste derlenmiş işlev olduğu gerçeği dışında aralarındaki gerçek fark nedir .

init.elHer ikisi de aynı işi yapıyor gibi göründüğü için kullanılması önerilen işlev nedir ?


2
Bununla ilgili belgelerin hangi kısmı bu konuda net değildi? Eğer gerçekten bir tane düşünüyorsanız, doktor sorunu bildirerek düşünün: M-x report-emacs-bug. @Shosti diyor doc açıkça anlaşılacağı gibi, ve, load-file" kullanmaz load-pathve ekleri eklemek gelmez " iki önemli farklılıkların,.
Drew

Ayrıca bkz. Emacs kılavuzu, düğüm Lisp Kütüphaneleri .
Drew

Yanıtlar:


14

Emp'lere Lisp dosyalarını yüklemenin birkaç yolu vardır:

  1. load-filedeğişmez bir dosya adı alır (göreceli veya mutlak) ve kodu yükler. Misal:(load-file "/usr/local/share/site-lisp/foo.el")
  2. loadolduğu gibi load-file, daha esnek olması dışında - uzantıyı dışarı bırakabilir ve otomatik uygun olarak "elc" veya "el" dosyasını yükleyecektir.
    Ayrıca load-pathdizinleri de inceler .
    Örnek: (load "foo")("foo.el" geçerli dizinde veya yükleme yolundaysa ").
  3. load-libraryiçin etkileşimli bir arayüzdür load.
  4. requireloaddosyanın birden fazla yüklenmesini engellemesi dışında buna benzer (ayrıca providesöz konusu dosyanın sonunda karşılık gelen bir ifade gerektirir ). Misal:(require 'foo)

3
Örneğiniz requirebir loadörnektir. ;-)
Drew

load-fileÖrnek kullanır load. :)
itsjeyd

2
2 ve 3 yanlış olduğunu söylediğim için üzgünüm. :-) load yapar yük yoluna göz.
Malabarba

@Malabarba Hata! Düzeltme için teşekkürler. Düşündüğümden daha kafa karıştırıcı.
shosti

8

load-fileve load-libraryolan komutlar (ana fark istemi başlangıç içeriği olan) etkileşimli kullanım için.

loadElisp'i (.emac'leriniz gibi) yazarken kullanılacak temel işlevdir .

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.