2012-07-03 4 views
3

J'essaie de configurer la sauvegarde automatique pour utiliser un répertoire dans ./emacs.d/autosaves. J'avais précédemment utilisé les deux lignes commentées ci-dessous et actuellement essayé l'autre fonction que j'ai trouvée sur le web. Vraiment tout ce que je veux, c'est que les autosaves ne soient pas stockées dans le même répertoire. Elle le fait enL'auto-sauvegarde dans Emacs ne fonctionne pas correctement lorsque le répertoire est spécifié

(defvar autosave-dir 
(concat "/home/" (user-login-name) "/.emacs.d/autosaves/")) 
(make-directory autosave-dir t) 
(defun auto-save-file-name-p (filename) 
    (string-match "^#.*#$" (file-name-nondirectory filename))) 
(defun make-auto-save-file-name() 
    (concat autosave-dir 
    (if buffer-file-name 
     (concat "#" (file-name-nondirectory buffer-file-name) "#") 
    (expand-file-name 
    (concat "#%" (buffer-name) "#"))))) 
;; (setq auto-save-file-name-transforms 
;;  `(("#.*#" ,"~/.emacs.d/backups/" t))) 

ou puis-je mettre AutoSave pour mettre un # # notes.org au début et à la fin du fichier, car le format a actuellement. # Notes.org.

Répondre

3

Il s'agit de verrouiller le fichier. Pour plus d'informations, lisez:

(info "(emacs) Interlocking") 

Fondamentalement rien autour de lui à moins effectuer une ré-écriture mineure et compiler votre propre source emacs de ce que j'avais lu.

2

Ce que vous avez besoin est juste (en supposant que le répertoire désigné par autosave-dir existe c'est):

(setq auto-save-file-name-transforms 
     `((".*" ,autosave-dir t))) 

Personnellement je suis favorable à l'utilisation du répertoire standard tmp pour les sauvegardes automatiques:

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

C'est ce que j'avais l'habitude d'avoir mais commenté ou quelque chose de similaire. Il enregistre toujours dans le répertoire en cours. Ensuite, si je quitte sans enregistrer, par exemple, il va le copier dans ce répertoire mais est initialement créé dans le répertoire courant avec. # Avant le nom du fichier. –

+0

C'est très bizarre - ça fait longtemps que je l'utilise et ça fonctionne certainement sur Emacs 24.1. –

+0

Ouais, ça fonctionnait correctement, je ne sais pas ce qu'il s'est passé. Pensé qu'il pourrait avoir été org-mode mais il le fait dans tous les modes. Même si je le réinitialise dans le tampon de travail en cours d'exécution, il ne fonctionne toujours pas correctement. Je ne suis pas sûr de ce qui se passe. J'ai emacs 24.1 sur une machine et emacs 23.3 sur une autre. Cela ne fonctionne pas non plus correctement. Toutes les idées sur ce qu'il faut vérifier ou pourquoi il pourrait enregistrer dans le répertoire actuel. –

Questions connexes