J'ai parcouru la documentation des deux fonctions mais elles ne semblent pas apporter beaucoup d'informations. Quelle est la différence réelle entre eux, à part le fait qu'il load
s'agit d'une fonction intégrée dans le code source C alors que load-file est une fonction compilée de liste interactive.
Quelle est la fonction recommandée à utiliser init.el
puisque les deux semblent faire le même travail?
M-x report-emacs-bug
. Comme le dit @shosti, et comme le document l'indique clairement,load-file
" n'utilise pasload-path
et n'ajoute pas de suffixes ", pour deux différences importantes.Réponses:
Il existe plusieurs façons de charger des fichiers Lisp dans Emacs:
load-file
prend un nom de fichier littéral (relatif ou absolu) et charge le code. Exemple:(load-file "/usr/local/share/site-lisp/foo.el")
load
est similaireload-file
, sauf qu'il est plus flexible - vous pouvez omettre l'extension et elle chargera automatiquement le fichier "elc" ou "el" selon le cas.Il examine également les
load-path
répertoires.Exemple:
(load "foo")
(si "foo.el" est dans le répertoire courant ou dans le chemin de chargement ").load-library
est une interface interactive pourload
.require
est similaire àload
, sauf qu'il empêche le fichier d'être chargé plus d'une fois (il nécessite également uneprovide
instruction correspondante à la fin du fichier en question). Exemple:(require 'foo)
la source
require
exemple est unload
exemple. ;-)load-file
exemple utiliseload
. :)load
t regard sur le chemin de charge.load-file
etload-library
sont des commandes pour une utilisation interactive (où la principale différence réside dans le contenu initial de l'invite).load
est la fonction sous-jacente à utiliser lorsque vous écrivez Elisp (comme dans votre .emacs).la source