2 votes

Configurer Emacs pour un répertoire de fichiers temporaires

Je cherche à configurer Emacs sur mon ordinateur et à avoir toutes les sauvegardes dans un dossier temporaire, avec ce qui suit dans mon fichier .emacs :

(setq backup-directory-alist
`((".*" . ,temporary-file-directory)))
(setq auto-save-file-name-transforms
`((".*" ,temporary-file-directory t)))

Cependant, je continue à obtenir l'erreur :

Mauvais type d'argument : stringp, (\, temporary-file-directory)

Que je pense être un artefact des différences de \ / entre Windows et Unix.

Comment puis-je arrêter cela?

3voto

cefstat Points 938

Êtes-vous sûr d'utiliser un backquote et pas une citation? Je suppose que vous avez

(setq backup-directory-alist '((".*" . ,temporary-file-directory)))

au lieu de

(setq backup-directory-alist `((".*" . ,temporary-file-directory)))

1voto

Drew Points 12071

Je pense que vous devez montrer plus de contexte sur l'erreur - où elle est déclenchée, etc. Il n'y a rien de mal avec le sexp de backquote que vous montrez, pour ce que j'en sais. Et aucune relation, je m'attends, avec les différences entre MS Windows et Unix. La question est de savoir comment les nouvelles valeurs résultantes de ces variables sont utilisées. Autrement dit, vérifiez (a) si les nouvelles valeurs sont celles que vous avez prévues, et si c'est le cas, (b) pourquoi elles ne semblent pas être ce que le code qui les utilise attend.

Commencez par définir debug-on-error sur t, pour voir où l'erreur est déclenchée et pourquoi. Chargez le code *.el pour ce fichier (définissant la fonction où l'erreur est déclenchée) pour améliorer la trace du débogueur.

Mais la plainte semble venir du traitement de backquote lui-même. Que se passe-t-il lorsque vous évaluez l'un de ces sexps setq seul, par exemple en utilisant M-: ou le tampon *scratch*? Obtiens-tu l'erreur alors? Si non, quelle est la nouvelle valeur de la variable résultante?

Une autre chose à essayer, si vous obtenez l'erreur même en dehors de votre .emacs, est d'envelopper votre sexp setq dans (macroexpand ...) et voir quel est le résultat.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X