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

时间:2012-07-03 10:44:25

标签: emacs elisp autosave emacs24

我正在尝试将自动保存设置为使用./emacs.d/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)))

或者我可以设置自动保存以在文件的开头和结尾放置#notes.org#,因为目前的格式是。#notes.org。

2 个答案:

答案 0 :(得分:3)

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

(info "(emacs) Interlocking")

基本上没办法解决它,除非执行一次小的重写并从我读过的内容编译你自己的emacs源。

答案 1 :(得分:2)

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

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

我个人赞成使用标准 tmp 目录进行自动保存:

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