由于缓冲区“ido.last”,emacs不会关闭

时间:2010-08-23 06:22:54

标签: emacs

当我尝试关闭emacs时,我收到消息

“缓冲区ido.last已修改;无论如何都要杀死?”

无论我回答什么,emacs都会保持开放状态。但我无法打开此缓冲区并且ido.last文件不存在。如何关闭我的emacs?

4 个答案:

答案 0 :(得分:5)

如果您使用emacs作为另一个用户,例如root,则.ido.last文件可能由root拥有,因此您不能删除或保存它。

当你得到“缓冲.ido.last修改”字样时,只需删除.ido.last文件,然后再回答是(如果你在shell中使用emacs,只需要Cz,删除文件然后继续使用% )。然后.ido.last文件将作为所有者写入磁盘。

答案 1 :(得分:3)

IDO尝试将名为ido.last的文件保存到~/.emacs.d目录中。但是,在你的情况下,IDO似乎无法这样做。也许您的~/.emacs.d目录由于特定原因是只读的,或者您的磁盘已满,等等。因此,IDO会引发一个错误,阻止您的emacs关闭。

如果您不使用IDO,请尝试从.emacs中删除此类行:

(require 'ido)
(ido-mode t)

答案 2 :(得分:0)

与JérômeRadix一样,IDO在无法保存ido.last文件时会出现错误,并且该错误会阻止emacs关闭。

IDO保存文件的默认位置是~/.emacs.d目录,但可以通过设置变量ido-save-directory-list-file来覆盖它。这意味着您应该检查此变量的值(例如,M-x describe-variable)以查看IDO尝试保存文件的位置,并找出无法保存文件的原因。

可能的原因包括:

  1. 目录或文件是只读的。
  2. 目录不存在。 IDO不会为您创建目录。
  3. 目录或文件归其他用户所有。
  4. 磁盘已满。

答案 3 :(得分:0)

将此代码(例如,添加到.emacs.elinit.el等)添加到 用ido修复问题,防止emacs退出 当ido.last文件不可写时:

(defun ido-kill-emacs-hook ()
      (ignore-errors (ido-save-history)))