2008-12-08 8 views
9

De vez en cuando, accidentalmente presiono C-x C-c en Emacs cuando tengo la intención de presionar C-x o C-c. Esto, por supuesto, cierra todos los marcos abiertos y búferes sin confirmación. Sé que puedo hacer que Emacs me pregunte "¿Estás seguro de que quieres salir?", Pero no quiero hacerlo todo el tiempo, lo que sería molesto. Solo quiero que lo haga cuando hay más de N archivos (o búferes) abiertos.¿Cómo cuento el número de búferes/archivos abiertos en Emacs?

Así que me gustaría para unirse Cx Cc para una función a lo largo de las líneas de:

(if (< number of open buffers n) 
    (save-buffers-kill-emacs) 
    (are-you-sure)) 

Pero no puedo encontrar la manera de obtener el número de buffers abiertos (o el número de marcos abiertos , o la cantidad de archivos abiertos, etc.).

Respuesta

9

Esto es lo que yo uso:

(defun count-buffers (&optional display-anyway) 
    "Display or return the number of buffers." 
    (interactive) 
    (let ((buf-count (length (buffer-list)))) 
    (if (or (interactive-p) display-anyway) 
    (message "%d buffers in this Emacs" buf-count)) buf-count)) 

lo robé , pero no puedo recordar de dónde. de John Sturdy, que suena como un tipo fascinante; está disponible en his website.

4

Además, puede considerar usar el modo de escritorio, que restaurará automáticamente sus búferes cuando vuelva a iniciar Emacs. Solo agregue

(desktop-save-mode 1) 

a su .emacs. Ver GNU Emacs manual o Emacswiki.

Cuestiones relacionadas