Saya membaca dokumentasi kedua fungsi tersebut tetapi sepertinya tidak banyak informasi. Apa perbedaan sebenarnya di antara mereka selain dari fakta bahwa itu load
adalah fungsi built-in dalam kode sumber C sedangkan load-file adalah fungsi kompilasi daftar interaktif.
Apa fungsi yang direkomendasikan untuk digunakan init.el
karena keduanya tampaknya melakukan pekerjaan yang sama?
M-x report-emacs-bug
. Seperti yang dikatakan @shosti, dan seperti yang ditunjukkan oleh dokumen dengan jelas,load-file
" tidak menggunakanload-path
, dan tidak menambahkan sufiks ", untuk dua perbedaan penting.Jawaban:
Ada beberapa cara untuk memuat file Lisp di Emacs:
load-file
mengambil nama file literal (relatif atau absolut) dan memuat kode. Contoh:(load-file "/usr/local/share/site-lisp/foo.el")
load
sepertiload-file
, kecuali bahwa itu lebih fleksibel - Anda dapat meninggalkan ekstensi dan secara otomatis akan memuat "elc" atau "el" file yang sesuai.Itu juga melihat ke
load-path
direktori.Contoh:
(load "foo")
(jika "foo.el" ada di direktori saat ini atau di path-load ").load-library
adalah antarmuka interaktif untukload
.require
mirip denganload
, kecuali itu mencegah file tidak dimuat lebih dari sekali (itu juga memerlukanprovide
pernyataan yang sesuai di akhir file yang bersangkutan). Contoh:(require 'foo)
sumber
require
Contoh Anda adalahload
contoh. ;-)load-file
contoh menggunakanload
. :)load
memang melihat ke jalur beban.load-file
danload-library
merupakan perintah untuk penggunaan interaktif (di mana perbedaan utama ada pada konten awal prompt).load
adalah fungsi dasar yang digunakan ketika Anda menulis Elisp (seperti di .emacs Anda).sumber