2010-08-23 17 views
7

cuando intento cerrar emacs consigo el mensajeemacs no se cierra a causa de búfer "ido.last"

"buffer ido.last modificada;? Matar de todos modos"

y todo lo que respondo, emacs permanece abierto. Pero no puedo abrir este buffer y el archivo ido.last no existe. ¿Cómo puedo cerrar mis emacs?

+0

Esto podría ser relevante: http://old.nabble.com/ido-insists-on-trying-to-save-ido.last-td11497631.html – phils

Respuesta

3

IDO intenta guardar un archivo llamado ido.last en el directorio ~/.emacs.d. Pero, en su caso, IDO parece no poder hacerlo. Tal vez su directorio ~/.emacs.d es de solo lectura por un motivo en particular, o su disco está lleno, etc. Por lo tanto, IDO genera un error que impide que sus emacs se cierren.

Si no se utiliza IDO, tratar de eliminar este tipo de líneas de .emacs:

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

Gracias por su ayuda. Busqué esas líneas y debajo de ellas encontré la línea << ido-save-directory-list-file "~/.emacs.d/cache/ido.last" >> Sin tener ninguna pista real, creo que esto significa, que ido.last debería guardarse en este directorio "caché", que no existe. Quité el "/ caché" y el problema no ha aparecido desde entonces :) – ploppy

5

Si ha utilizado emacs como otro usuario, como root, por ejemplo, es posible que el El archivo .ido.last es propiedad de root y, por lo tanto, no está permitido eliminarlo ni guardarlo.

Cuando obtiene el "buffer .ido.last modified", pregunta simplemente elimine el archivo .ido.last antes de responder afirmativamente (si está utilizando emacs dentro de un shell, simplemente Cz, elimine el archivo y luego reanude con %). Luego, el archivo .ido.last se escribirá en el disco con usted como propietario.

+0

En mi elenco, había un archivo ~/.ido.last propiedad de root. Eliminar eso solucionó el problema de forma permanente. – CPBL

0

Como dijo Jérôme Radix, IDO da ese error cuando no se puede guardar el archivo ido.last, y el error impide que se cierre emacs.

La ubicación predeterminada para IDO para guardar el archivo está en el directorio ~/.emacs.d, pero esto se puede anular configurando la variable ido-save-directory-list-file. Esto significa que debe verificar el valor de esta variable (por ejemplo, M-x describe-variable) para ver dónde intenta IDO guardar un archivo, y averiguar por qué no puede guardar el archivo.

razones posibles incluyen:

  1. El directorio o archivo es de sólo lectura.
  2. El directorio no existe. IDO no creará el directorio para usted.
  3. El directorio o archivo es propiedad de otro usuario.
  4. El disco está lleno. (. Por ejemplo, para su .emacs.el, init.el, etc.)
0

Añadir este código para solucionar el problema con la prevención ido emacs salga cuando el archivo ido.last No se puede escribir:

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