首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么ido模式试图使用这个变量?

为什么ido模式试图使用这个变量?
EN

Stack Overflow用户
提问于 2014-03-14 01:44:25
回答 1查看 314关注 0票数 0

我有emacs自动保存和备份到主目录中的单个目录。由于某种原因,当我试图退出我设置的变量名时,保存目录将被传递到ido模式,它不会让我退出emacs。我尝试过删除我的ido.last文件的旧版本(以及符号链接.#ido.last),但这似乎没有始终如一地解决问题。我对存储在其中的目录和文件本身都有完全的权限和所有权。这种情况发生在我所研究的几个系统上,这些系统包括emacs的主要版本21、22和24。

下面是我的emacs配置的相关部分:

代码语言:javascript
复制
(defvar home (concat (getenv "HOME") "/"))
(defvar emacs-dir (concat home ".emacs.d/"))
(defvar savedir (concat home ".saves/"))

(setq backup-directory-alist `((".*" . savedir)))
(setq auto-save-file-name-transforms `((".*" ,savedir t)))
(setq backup-by-copying t)
(setq delete-old-versions t
      kept-new-versions 10
      kept-old-versions 6
      version-control t)

(setq ido-save-directory-list-file (concat emacs-dir "cache/ido.last"))
(ido-mode t)
(setq ido-enable-flex-matching t
      ido-everywhere t)

当问题发生时,调试器输出就是这样的。

代码语言:javascript
复制
Debugger entered--Lisp error: (wrong-type-argument stringp savedir)
  expand-file-name(savedir "/home/pinyaka/.emacs.d/cache/")
  make-backup-file-name-1("/home/pinyaka/.emacs.d/cache/ido.last")
  make-backup-file-name("/home/pinyaka/.emacs.d/cache/ido.last")
  find-backup-file-name("/home/pinyaka/.emacs.d/cache/ido.last")
  backup-buffer()
  basic-save-buffer-2()
  basic-save-buffer-1()
  basic-save-buffer()
  save-buffer()
  write-file("/home/pinyaka/.emacs.d/cache/ido.last" nil)
  ido-save-history()
  ido-kill-emacs-hook()
  run-hooks(kill-emacs-hook)
  kill-emacs()
  save-buffers-kill-emacs(nil)
  call-interactively(save-buffers-kill-emacs)

您可以看到,由于某种原因,ido已经掌握了savedir,尽管我从未在ido模式中使用过该变量(我在所有使用该变量的地方都包含了该变量,以及我所做的所有ido调用)。为什么我要和萨迪尔做任何事?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-14 02:25:56

我认为问题是:

代码语言:javascript
复制
(setq backup-directory-alist `((".*" . savedir)))

应该是

代码语言:javascript
复制
(setq backup-directory-alist `((".*" . ,savedir)))

说明:当Emacs退出时,Ido正在尝试保存它的历史记录;Emacs的标准备份过程启动并尝试备份该文件。但是,您忘记了在backup-directory-alist的配置中取消引用backup-directory-alist,因此cons单元格是一对字符串和符号,而不是预期的一对字符串。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22394593

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档