Emacs自动保存:为什么文件没有存储在正确的文件夹中?

Mar*_*ert 1 emacs autosave

我查看了各个地方,最后在Emacs中为"自动保存"模式提出了以下设置:

(defvar my-auto-save-folder (concat "~/.emacs.d/auto-save")); folder for auto-saves
(setq auto-save-list-file-prefix "~/.emacs.d/auto-save/.saves-"); set prefix for auto-saves 
(setq auto-save-file-name-transforms `((".*", my-auto-save-folder t))); location for all auto-save files
(setq tramp-auto-save-directory my-auto-save-folder); auto-save tramp files in local directory
Run Code Online (Sandbox Code Playgroud)

经过几周的设置后,我访问了〜/ .emacs.d并发现文件夹〜/ .emacs.d/auto-save为空,而〜/ .emacs.d包含两个表单的自动保存文件#!home!<myusername>!<myfolder>!<myfile>.为什么自动保存文件没有存储在〜/ .emacs.d/auto-save中?[该文件夹auto-save有权利775,700 .emacs.d]

phi*_*ils 5

你的错误是:

(defvar my-auto-save-folder (concat "~/.emacs.d/auto-save")); folder for auto-saves
Run Code Online (Sandbox Code Playgroud)

(concat用一个参数调用是没有意义的,顺便说一下).

如果可选元素UNIQUIFY是非零的,则通过获取替换文件名的目录部分来构造自动保存文件,与缓冲区文件名连接,并将所有目录分隔符更改为"!" 防止冲突.

Emacs通过尾部标识目录名称/,这意味着您使用的路径的"目录部分"是"〜/ .emacs.d /".

你要:

(defvar my-auto-save-folder "~/.emacs.d/auto-save/"); folder for auto-saves
Run Code Online (Sandbox Code Playgroud)

逗号在下面的定位也很奇怪(虽然显然它仍然有效):

`((".*", my-auto-save-folder t)))
Run Code Online (Sandbox Code Playgroud)

那应该是:

`((".*" ,my-auto-save-folder t)))
Run Code Online (Sandbox Code Playgroud)