Emacs: Ändern des Speicherorts für automatisch gespeicherte Dateien

Emacs: Ändern des Speicherorts für automatisch gespeicherte Dateien

Ich habe derzeit:

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

in meinem .emacs, aber das scheint sich nicht geändert zu haben, wo automatisch gespeicherte Dateien gespeichert werden (es hat sich geändert, wo Sicherungsdateien gespeichert werden. M-x describe-variablezeigt, dass dies temporary-file-directoryauf eingestellt ist /tmp/, aber wenn ich eine Datei namens bearbeite testing.mdund nicht gespeicherte Änderungen habe, erhalte ich eine Datei namens .#testing.mdim selben Verzeichnis. Wie kann ich dafür sorgen, dass diese Datei woanders hin verschoben wird (z. B. /tmp/)?

Ich hatte kein Glück mitdiese Vorschläge, also sind alle Vorschläge willkommen!

Falls es hilft: Ich verwende GNU Emacs 23.3.1 und Ubuntu.

Antwort1

Diese Dateien sind keine automatischen Speicherungen, sondern Sperrdateien. Probieren Sie ls -lsie aus und Sie werden sehen, dass es sich um symbolische Links handelt, die auf falsche Dateinamen verweisen, die eigentlich Benutzername+PID des Bearbeitungsprozesses sind. Soweit ich weiß, gibt es keine Möglichkeit, das anzupassen. (Der Sinn besteht darin, Probleme zu vermeiden, wenn zwei verschiedene Benutzer dieselbe Datei bearbeiten – wenn einer den Speicherort der Sperrdatei ändert, wissen sie nichts von den Änderungen des anderen.) Siehe auchdiese Frage.

(Übrigens /tmpist die Verwendung zum Speichern von Backups wirklich keine gute Idee, es sei denn, Sie sind sicher, dass Sie der einzige Benutzer auf dem Computer sind.)

Antwort2

; auto save path
(defvar autosave-dir (concat "~/auto-save" "/"))
(make-directory autosave-dir t)
(setq auto-save-file-name-transforms
      `(("\\(?:[^/]*/\\)*\\(.*\\)" ,(concat autosave-dir "\\1") t)))

Betriebssystem: Win7. Version: Emacs 23.4.

verwandte Informationen