emacsでdiredバッファだけを消去
emacsを使ってると1時間程度でdiredのバッファでバッファリストが埋まる事がある.
そんなわけでこんなのを書いた.
(defun filtercar (func lst) (let ((result '()) (rest lst)) (while rest (let ((func-result (funcall func (car rest)))) (if func-result (progn (push (car rest) result)))) (setq rest(cdr rest))) result)) (defun get-buffers-by-mode (buffer-list mode-name) (filtercar (lambda (buf) (string= (symbol-name (cdr (assq 'major-mode (buffer-local-variables buf)))) mode-name)) buffer-list)) (defun delete-dired-buffers () (interactive) (mapcar #'(lambda (buf) (kill-buffer buf)) (get-buffers-by-mode (buffer-list) "dired-mode")) nil) (run-with-idle-timer (* 10 60) 1 (lambda () (delete-dired-buffers)))
ははは,バッファがゴミのようだ.