2010-08-23 25 views
7

Khi tôi cố gắng đóng các emac, tôi nhận được thông báoemacs sẽ không đóng vì bộ đệm "ido.last"

"buffer ido.last modified; kill anyway?"

và bất cứ điều gì tôi trả lời, các emacs vẫn mở. Nhưng tôi không thể mở bộ đệm này và tệp ido.last không tồn tại. Làm thế nào tôi có thể nhận được emacs của tôi đóng cửa?

+0

Điều này có thể có liên quan: http://old.nabble.com/ido-insists-on-trying-to-save-ido.last-td11497631.html – phils

Trả lời

3

IDO cố gắng lưu tệp có tên ido.last vào thư mục ~/.emacs.d. Nhưng, trong trường hợp của bạn IDO dường như không thể làm như vậy. Có thể thư mục ~/.emacs.d của bạn là chỉ đọc vì một lý do cụ thể, hoặc đĩa của bạn đã đầy, vv Vì vậy, IDO nêu ra một lỗi ngăn chặn các emacs của bạn đóng lại.

Nếu bạn không sử dụng IDO, cố gắng loại bỏ loại dòng từ emacs của bạn:

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

Cảm ơn sự giúp đỡ của bạn. Tôi tìm những dòng này và dưới chúng tôi tìm thấy dòng << ido-save-directory-list-file "~/.emacs.d/cache/ido.last" >> Không có bất kỳ đầu mối thực sự nào, tôi nghĩ điều này có nghĩa là, ido.last đó phải được lưu vào thư mục "cache" này, không tồn tại. Tôi đã xóa "/ cache" và vấn đề chưa xuất hiện kể từ đó :) – ploppy

5

Nếu bạn đã sử dụng emacs như một người dùng khác, như là người chủ ví dụ, nó có thể là tập tin .ido.last được sở hữu bởi root và do đó bạn không được phép xóa hoặc lưu nó.

Khi bạn nhận được "đệm .ido.last sửa đổi" -question chỉ cần loại bỏ các tập tin .ido.last trước khi bạn trả lời có (nếu bạn đang sử dụng emacs trong một vỏ, chỉ cần Cz, loại bỏ tập tin và sau đó tiếp tục với %). Sau đó, tập tin .ido.last sẽ được ghi vào đĩa với bạn với tư cách là chủ sở hữu.

+0

Trong diễn viên của tôi, có một tập tin ~/.ido.last thuộc sở hữu của root. Việc xóa đã khắc phục sự cố vĩnh viễn. – CPBL

0

Giống như Jérôme Radix cho biết, IDO đưa ra lỗi đó khi không thể lưu tệp ido.last và lỗi ngăn các emacs đóng.

Vị trí mặc định cho IDO để lưu tệp vào thư mục ~/.emacs.d, nhưng điều này có thể bị ghi đè bằng cách đặt biến ido-save-directory-list-file. Điều này có nghĩa là bạn nên kiểm tra giá trị của biến này (ví dụ: M-x describe-variable) để xem IDO đang cố gắng lưu tệp và tìm hiểu lý do tại sao nó không thể lưu tệp.

Lý do có thể bao gồm:

  1. Các thư mục hoặc tập tin là chỉ đọc.
  2. Thư mục không tồn tại. IDO sẽ không tạo thư mục cho bạn.
  3. Thư mục hoặc tệp được sở hữu bởi một người dùng khác.
  4. Đĩa đã đầy. (. Ví dụ để .emacs.el của bạn, init.el vv)
0

Thêm mã này để khắc phục vấn đề với ido ngăn ngừa emacs từ thoát khi tập tin ido.last là không thể ghi:

(defun ido-kill-emacs-hook() 
     (ignore-errors (ido-save-history))) 
Các vấn đề liên quan