6
votes

Obtenir le répertoire actuel dans EMACS LISP

J'essaie d'écrire un fichier .Dir-locaux.el. Je veux trouver de manière dynamique le répertoire que le fichier est dans et le concaténer avec "tags". C'était mon premier essai:

((nil . ((tags-file-name . (concat default-directory "TAGS")))))


0 commentaires

4 Réponses :


0
votes

Ce n'est pas clair pour moi ce que vous voulez, mais (répertoire par défaut de concessrité "" Tags ") semble correct.

Si vous souhaitez définir la variable noms-file-file-name , vous pouvez le faire comme suit: (noms de fichiers SETQ (nom de fichier par défaut de concess)))) .


0 commentaires

2
votes

Techniquement, vous devez faire quelque chose comme ça pour obtenir des formulaires de code pour évaluer l'intérieur .dir-locaux.el : xxx

Toutefois, j'ai essayé ceci, et répertoire par défaut semble être nil au moment où le code dans dir-local est exécuté, il semble donc impossible de faire quoi Vous essayez.

qui dit, Tags-nom-nom-nom ne semble pas être censé être réglé manuellement. Plutôt, il est défini par le code des balises lorsque vous accédez au premier fichier Tags.

Alors pourquoi ne pas le laisser non défini et utiliser les fonctions de balise? tags est le nom du fichier de balise par défaut, après tout.

EDIT : Vous pouvez également envisager d'utiliser le complément Projet-local- Variables BIBLIOTHIQUE, qui utilise un fichier de choix par projet similaire, mais est plus flexible sur le code que vous pouvez mettre à l'intérieur. C'est ainsi que je voudrais personnellement résoudre votre problème.


1 commentaires

Cela signifie-t-il qu'après avoir démarré Emacs, je dois toujours le signaler au fichier Tags lorsque j'appelle Recherche-tag ? Est-ce que Emacs se souvient de quel fichier Tags j'ai utilisé la prochaine fois que je commence?



2
votes

Alliant la solution de Sanityinc et un autre extrait que j'ai trouvé ailleurs, je reçois:

((nil . ((eval . (setq tags-file-name (concat (locate-dominating-file buffer-file-name ".dir-locals.el") "TAGS"))))))


0 commentaires

3
votes

sous Linux, que diriez-vous:

(getenv "PWD")


0 commentaires