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")))))
4 Réponses :
Ce n'est pas clair pour moi ce que vous voulez, mais Si vous souhaitez définir la variable code> noms-file-file-name CODE>, vous pouvez le faire comme suit: (répertoire par défaut de concessrité "" Tags ") code> semble correct. P>
(noms de fichiers SETQ (nom de fichier par défaut de concess)))) code>. p>
Techniquement, vous devez faire quelque chose comme ça pour obtenir des formulaires de code pour évaluer l'intérieur Toutefois, j'ai essayé ceci, et qui dit, Alors pourquoi ne pas le laisser non défini et utiliser les fonctions de balise? EDIT STRY>: Vous pouvez également envisager d'utiliser le complément .dir-locaux.el code>:
répertoire par défaut code> semble être
nil code> au moment où le code dans
dir-local code> est exécuté, il semble donc impossible de faire quoi Vous essayez. p>
Tags-nom-nom-nom code> 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. P>
tags code> est le nom du fichier de balise par défaut, après tout. p>
Projet-local- Variables CODE> 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. P> p>
Cela signifie-t-il qu'après avoir démarré Emacs, je dois toujours le signaler au fichier Tags lorsque j'appelle Recherche-tag code>? Est-ce que Emacs se souvient de quel fichier Tags j'ai utilisé la prochaine fois que je commence?
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"))))))
sous Linux, que diriez-vous:
(getenv "PWD")