loop マクロの使用例

erc以外のバッファに対してkill-bufferする関数 - IMAKADO::BLOG

無駄が多いのが気になったので添削。

  • loop 使ってるのに mapcar は無駄なループ。
  • for var = でそのループにローカルな変数となる。
  • when (not 〜) は unless で。
  • collect しなくても do で十分。
  • ついでに正規表現も統一。
(require 'cl)
(defun my-kill-buffers ()
  (interactive)
  (loop for buf in (buffer-list)
        for bn = (buffer-name buf)
        unless (string-match (rx bol (or (+ space) "#")) bn)
        do (kill-buffer buf)))