I generally have a single emacs session that runs for a couple weeks, up to about 3 months (when work does it's quarterly preventative maintenance reboot), and because of this, I often have dozens of buffers open. Periodically I'd go through them and remove a bunch - mostly to free up memory.
Luckily, there's a mode that already does that for you, periodically flushing unused and old buffers:
The following variables can be used to customize the behavior of the (require 'midnight)
clean-buffer-list
(which is run daily at midnight). It responds to settings of the following variables:
I love finding packages that implement functionality I hadn't realized I wanted. It is very relieving, like accidentally scratching an itch I didn't know was bothering me.clean-buffer-list-kill-buffer-names
clean-buffer-list-kill-regexps
clean-buffer-list-kill-never-buffer-names
clean-buffer-list-kill-never-regexps
clean-buffer-list-delay-general
clean-buffer-list-delay-special
Edited to reflect proper require statement.
Monday, December 1, 2008
Emacs Tip #27: midnight-mode
Posted by a at 2:38 PM
Labels: emacs, emacs-intermediate, emacs-tip
Subscribe to:
Post Comments (Atom)
6 comments:
Not sure if it's a version thing, but here (GNU Emacs 23.0.60.1 (sparc-sun-solaris2.10, X toolkit) of 2008-12-01) it's (require 'midnight), rather than (require 'midnight-mode)
Thanks, that's correct.
I use the buffer list a lot for this sort of thing, and I wrote a function a while back that marks all saved buffers for deletion. In buffer mode I hit 'z' to mark them, then 'x' to actually do the deletion. I like this as I can see what I'm doing, and can alter the suggested actions before executing.
(defun tjic-buffer-mark-for-delete-all-saved ()
"in buffer-meny-mode, mark for deletion all buffers that are saved"
(interactive)
(Buffer-menu-beginning)
(let ((continue-p t))
(while continue-p
(let ((modified-p (save-excursion
(set-buffer (Buffer-menu-buffer t))
(buffer-modified-p))))
(if modified-p
(forward-line)
(Buffer-menu-delete)))
(if (equal (point) (point-max))
(setq continue-p nil)))))
(define-key Buffer-menu-mode-map "z" 'tjic-buffer-mark-for-delete-all-saved)
How would midnight interact with something like org-mode? Org-mode's agenda functions seem to require the underlying org files all to be loaded.
Robert,
That's a good question about interaction with org-mode. My org-mode usage is pretty limited (only one file), so I do not know the answer.
That being said, you could easily customize the variables such that the org-mode files are skipped.
The problem I have with midinght-mode that at weekends it closes all buffers that I leave behind on friday... That is annoying :D
Post a Comment