8
votes

EMACS: définir une fonction qui charge le fichier dans lequel la fonction elle-même est définie.

Je refactore un peu dans mes emacs mis en place et je suis arrivé à la conclusion que je souhaite utiliser un fichier init différent de celui par défaut. Donc, fondamentalement, dans mon fichier ~ / .emacs, j'ai ceci:

(defun conf ()
  "Open a buffer with the user init file."
  (interactive)
  (find-file user-init-file))


3 commentaires

@Randymorris: Non, je ne peux pas utiliser le nom de fichier chargé, car il sera nil au moment de l'exécution.


J'ai découvert que je peux utiliser (fichier de fichiers symboliques 'conf) pour cela.


Je me suis rendu compte que immédiatement après avoir posté ce commentaire, mon mauvais.


3 Réponses :


6
votes

Vous pouvez utiliser trouver-fonction pour ceci: xxx


1 commentaires

Ajouter la ligne "(Début-de-tampon)" Avant la dernière parenthèse pour démarrer au début du tampon au lieu de cette commande.



3
votes

Vous pouvez également utiliser une manière snoweuse:

(défunement confor () "blabla" (interactif) (Find-file # $))

Parce que # $ fonctionne un peu comme __File__ dans C: Il est remplacé par le nom de fichier lorsque le fichier est lu.


3 commentaires

C'est très cool, mais comment j'en aurais découvert à ce sujet dans la documentation de Emacs? Même un (APROPOS "# $") ne me dit rien.


Eh bien, j'ai dit "Sneakier". Je ne pense pas que cela soit (ou devrait être) documenté. Il est utilisé à l'intérieur du format des fichiers .elc et les fichiers .el et .elc sont en fait traités de la même manière, de sorte que cette astuce fonctionne également dans les fichiers .el.


Je suppose qu'une façon légèrement moins méchante, c'est (fonction de symbole "quelque chose" "défunt) ?



0
votes

Cela fonctionne pour moi. xxx


0 commentaires