2

我正在尝试在我的计算机上设置 Emacs,并将所有备份放在一个临时文件夹中,在我的 .emacs 文件中包含以下内容:

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

但是,我不断收到错误:

Wrong type argument: stringp, (\, temporary-file-directory)

我认为这是Windows和Unix之间\ /差异的产物。

我该如何阻止这个?

4

2 回答 2

3

您确定您使用的是反引号而不是引号吗?我的猜测是你有

(setq backup-directory-alist '((".*" . ,temporary-file-directory)))

代替

(setq backup-directory-alist `((".*" . ,temporary-file-directory)))
于 2013-12-09T06:16:54.730 回答
1

我认为您需要展示更多关于错误上下文的信息——它是在哪里引发的等等。您展示的反引号 sexp 没有任何问题,AFAICT。我希望 MS Windows 和 Unix 之间没有任何关系。问题是如何使用这些变量的新值。IOW,检查 (a) 新值是否符合您的预期,如果是 (b) 为什么它们似乎不是使用它们的代码所期望的。

首先将 debug-on-error 设置为 t,以查看引发错误的位置以及原因。加载该文件的 *.el 代码(定义引发错误的函数)以改进调试器回溯。

但抱怨似乎来自反引号处理本身。当您单独评估其中一个性别时会发生什么setq,例如 usingM-:或 buffer *scratch*?那你得到错误了吗?如果不是,那么变量的新值是什么?

.emacs另一件要尝试的事情是,如果您甚至setq(macroexpand ...).

于 2013-09-09T16:46:55.263 回答