2010-08-23 69 views
7

當我試圖關閉emacs的我得到的消息Emacs會不會關閉,因爲緩衝區「ido.last」

的「緩衝區ido.last修改;?反正殺」

以及我回答的任何問題,emacs保持打開狀態。但是我無法打開這個緩衝區,並且ido.last文件不存在。我怎樣才能讓我的emacs關閉?

+0

這可能是相關:http://old.nabble.com/ido-insists-on-trying-to-save-ido.last-td11497631.html – phils 2010-08-23 11:22:50

回答

3

IDO嘗試將名爲ido.last的文件保存到~/.emacs.d目錄中。但是,就您而言,IDO似乎無法這樣做。也許你的~/.emacs.d目錄由於特定的原因是隻讀的,或者你的磁盤已滿,所以IDO提出了一個錯誤,以防止你的emacs關閉。

如果你不使用IDO,試圖從你的.emacs刪除這類線路:

(require 'ido) 
(ido-mode t) 
+2

感謝您的幫助。我找到了這些行,在他們的下面,我找到了「ido-save-directory-list-file」〜/ .emacs.d/cache/ido.last「>> 沒有任何真實的線索,我想這意味着,那ido.last應該被保存到這個「緩存」目錄中,該目錄不存在。我刪除了「/ cache」,並且從那時起問題還沒有出現:) – ploppy 2010-08-25 11:54:15

5

如果你使用emacs的作爲另一個用戶,作爲根例如,它有可能是.ido.last文件由root擁有,因此您不能刪除或保存它。

當你得到「緩衝區.ido.last修改」 - 問題只是刪除.ido.last文件,然後再回答yes(如果你在shell中使用emacs,只需Cz,刪除文件,然後恢復%)。然後.ido.last文件將作爲所有者與您一起寫入磁盤。

+0

在我的演員中,有一個由root擁有的〜/ .ido.last文件。刪除永久解決問題。 – CPBL 2015-03-19 15:11:40

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. 磁盤已滿。 (如您.emacs.el,​​等)
0

添加該代碼 解決該問題與IDO防止從emacs的退出 當ido.last文件不可寫:

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