8
votes

Exécuter mon propre code quand lors de la startup emacs

Disons que j'ai mon propre code Elisp dans ~ / bin / hello.el .

Le fichier ~ / .emacs a le code suivant pour exécuter < code> hello.el au démarrage. xxx

mais, je reçois le message d'erreur suivant.

Avertissement (initialisation): une erreur s'est produite lors du chargement `/users/smcho/.emacs ':

Erreur: Caractéristique requise `Hello 'n'a pas été fournie

Qu'est-ce qui ne va pas avec ça?


3 commentaires

Incidemment, vous pouvez envisager de réorganiser votre code: au lieu d'un ~ / .emacs, EMACS trouvera et chargez automatiquement ~ / .emacs.d / init.el, afin que vous puissiez mettre tout votre élis à l'intérieur ~ / .emacs.d.


@sanityinc: c'est différent de ma compréhension. Pourriez-vous vérifier Ce Stackoverflow.com/questions/3349172/... >?


Oui, c'est différent, mais je ne suis pas sûr de quelle manière vous voulez dire. Voici ma configuration (avec non ~ ~ .emacs), au cas où il aide: github.com/purcell/emacs.d


3 Réponses :


16
votes

Bonjour.el fournit-il bonjour? Il devrait commencer par (fournir "bonjour) . Voir le Manuel ELISP . Est-ce que (charge "hello.el") fonctionne?


4 commentaires

(Fournir 'Hello) doit être ajouté pour la première ligne du code ELISP. Merci.


Quelle est la différence entre (exiger) et (charge)?


(charge) charge le fichier. (exiger) Charge une fonctionnalité lorsqu'elle est utilisée. Un fichier peut fournir plus d'une fonctionnalité, mais je ne pense pas que le code du fichier est évalué jusqu'à ce que la fonctionnalité soit utilisée (ne me citez pas sur la sémantique exacte). Exiger est essentiellement dire que je vais avoir besoin de cela, déterminez-vous où il est et que vous l'avez prêt si j'en ai besoin.


En réalité, la convention est que (fournir «la fonctionnalité) devrait être la dernière ligne d'un fichier source LISP emacs ...



3
votes

Vous devez mettre quelque chose comme ça dans votre code LISP:

(Fournir 'Bonjour)


0 commentaires

1
votes

Si vous avez ajouté ~ / bin / elisp à votre Load-chemin , alors emacs ne trouvera pas de fichier dans ~ / bin . Dans ce cas, EMACS essaierait de charger ~ / bin / elisp / hello.el , et s'il ne trouve pas que, il recherchera un fichier nommé hello.elc < / code> ou hello.el (dans cet ordre) dans les autres parties de votre Load-Chemin .

Également, comme d'autres personnes ont mentionné, hello.el doit avoir un (fournir 'bonjour) dedans (typiquement à la fin).


0 commentaires