当我尝试关闭emacs时,会出现以下信息:
"buffer ido.last modified; kill anyway?"
无论我如何回答,emacs都不会关闭。但我无法打开这个缓冲区,而且ido.last文件也不存在。我该如何关闭emacs呢?"buffer ido.last modified; kill anyway?"
无论我如何回答,emacs都不会关闭。但我无法打开这个缓冲区,而且ido.last文件也不存在。我该如何关闭emacs呢?如果您以另一个用户身份(例如root)使用emacs,则可能会发现.ido.last文件归属于root,因此您无法删除或保存它。
当您看到“buffer .ido.last modified”的提示时,只需在回答“yes”之前删除.ido.last文件即可(如果您在shell中使用emacs,则只需使用C-z暂停,删除文件,然后使用%继续)。然后,.ido.last文件将被写入磁盘,并由您拥有。
ido.last
的文件保存到~/.emacs.d
目录中。但是,在您的情况下,IDO似乎无法这样做。也许您的~/.emacs.d
目录由于某种原因是只读的,或者您的磁盘已满等。因此,IDO会引发错误,防止您的emacs关闭。(require 'ido)
(ido-mode t)
将以下代码添加到您的.emacs.el
、init.el
等文件中,以解决ido在ido.last
文件不可写时防止emacs退出的问题:
(defun ido-kill-emacs-hook ()
(ignore-errors (ido-save-history)))
就像Jérôme Radix所说,当IDO无法保存ido.last
文件时,会出现该错误,并且该错误会阻止emacs关闭。
IDO保存文件的默认位置是~/.emacs.d
目录,但是可以通过设置变量ido-save-directory-list-file
来覆盖此位置。这意味着您应该检查此变量的值(例如,M-x describe-variable
)以查看IDO尝试保存文件的位置,并找出为什么无法保存文件的原因。
可能的原因包括: