指定目录时,Emacs中的自动保存无法正常工作

指定目录时,Emacs中的自动保存无法正常工作,emacs,elisp,autosave,emacs24,Emacs,Elisp,Autosave,Emacs24,我正在尝试将autosave设置为使用./emacs.d/autosaves中的目录。我以前使用过下面的两行注释,现在尝试了在web上找到的另一个功能。实际上,我只希望autosaves不存储在同一个目录中。它是以这种方式进行的 (defvar autosave-dir (concat "/home/" (user-login-name) "/.emacs.d/autosaves/")) (make-directory autosave-dir t) (defun auto-save-file

我正在尝试将autosave设置为使用./emacs.d/autosaves中的目录。我以前使用过下面的两行注释,现在尝试了在web上找到的另一个功能。实际上,我只希望autosaves不存储在同一个目录中。它是以这种方式进行的

(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)))
或者我可以将autosave设置为在文件的开头和结尾放置一个#notes.org#,因为当前的格式为。#notes.org。

您需要的只是(假设存在由
autosave dir
引用的目录):

就我个人而言,我赞成在autosaves中使用标准tmp目录:

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

这是关于锁定文件的。有关更多信息,请阅读:

(info "(emacs) Interlocking")

基本上没有办法解决这个问题,除非执行一个小的重写,并根据我读到的内容编译您自己的emacs源代码。

这是我以前的做法,但注释掉了它或类似的东西。它仍然保存在当前目录中。然后,如果我退出而不保存,例如,它会将它复制到该目录,但最初是在当前目录中创建的,在文件名之前有#。这很奇怪-我已经使用了很长一段时间,它肯定在Emacs 24.1上工作。是的,它以前工作正常,不确定发生了什么。虽然它可能是组织模式,但它在每种模式下都会这样做。即使我在运行时在scratch缓冲区中重置它,它仍然不能正常工作。我不知道发生了什么事。我在一台机器上安装了emacs 24.1,在另一台机器上安装了emacs 23.3。它也不能正常工作。是否知道要检查什么或为什么要保存在当前目录中。是否确实要对配置进行评估?可能您有一个
.emacs
文件和一个
.emacs.d\init.el
?发现答案与锁定文件有关。它应该这样做,与自动保存或备份无关。
(info "(emacs) Interlocking")