लोड-फ़ाइल और लोड के बीच अंतर


17

मैं दोनों समारोह के प्रलेखन के माध्यम से चला गया, लेकिन वे बहुत जानकारी बहाया नहीं है। इस तथ्य के अलावा उनके बीच वास्तविक अंतर क्या है जो loadC स्रोत कोड में एक अंतर्निहित फ़ंक्शन है जबकि लोड-फ़ाइल एक इंटरैक्टिव सूची संकलन फ़ंक्शन है।

init.elदोनों एक ही काम कर रहे हैं, क्योंकि उपयोग करने के लिए अनुशंसित फ़ंक्शन क्या है ?


2
इस संबंध में दस्तावेज का क्या हिस्सा इस संबंध में स्पष्ट नहीं था? डॉक्टर समस्या की रिपोर्ट करने पर विचार करें, अगर आपको लगता है कि वास्तव में एक है M-x report-emacs-bug:। जैसा कि @shosti कहते हैं, और जैसा कि डॉक्टर स्पष्ट रूप से इंगित करता है, load-file" दो महत्वपूर्ण अंतरों के लिए" का उपयोग नहीं करता है load-path, और प्रत्ययों को जोड़ नहीं करता है "।
आकर्षित किया

एमएसीएस मैनुअल, नोड लिस्प लाइब्रेरी भी देखें ।
ड्रू

जवाबों:


14

Emacs में लिस्प फ़ाइलों को लोड करने के कई तरीके हैं:

  1. load-fileशाब्दिक फ़ाइल नाम (सापेक्ष या पूर्ण) लेता है और कोड लोड करता है। उदाहरण:(load-file "/usr/local/share/site-lisp/foo.el")
  2. loadयह पसंद है load-file, सिवाय इसके कि यह अधिक लचीला है - आप एक्सटेंशन को छोड़ सकते हैं और यह उपयुक्त रूप से "elc" या "el" फ़ाइल को उपयुक्त रूप से लोड करेगा।
    यह load-pathनिर्देशिकाओं में भी दिखता है ।
    उदाहरण: (load "foo")(यदि "foo.el" वर्तमान निर्देशिका में या लोड-पथ में है ")।
  3. load-libraryके लिए एक इंटरैक्टिव इंटरफ़ेस है load
  4. requireके समान है load, सिवाय इसके कि यह फ़ाइल को एक से अधिक बार लोड होने से रोकता है (इसमें provideविचाराधीन फ़ाइल के अंत में भी इसी कथन की आवश्यकता होती है )। उदाहरण:(require 'foo)

3
आपका requireउदाहरण एक loadउदाहरण है। ;-)
आकर्षित किया

load-fileउदाहरण का उपयोग करता है load। :)
itsjeyd

2
क्षमा करें 2 और 3 गलत थे। :-) load करता लोड पथ में देखो।
मालाबार 11

@ मलबारबा उफ़, आप सही हैं, सुधार के लिए धन्यवाद। जितना मैंने सोचा था उससे कहीं अधिक भ्रामक है।
15

8

load-fileऔर load-libraryकर रहे हैं आदेशों इंटरैक्टिव उपयोग (जहां मुख्य अंतर यह है शीघ्र की प्रारंभिक सामग्री में है) के लिए।

loadजब आप Elisp लिखते हैं (जैसे कि आपके .emacs में) उपयोग करने के लिए अंतर्निहित फ़ंक्शन है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.