eval-buffer をちょこっといじる

ほんとに些細なことなんだけど eval-buffer でいちいちバッファの名前を聞かれるのがうざい。
カレントバッファ以外を eval-buffer することはめったにないので、インタラクティブに呼ばれたときはカレントバッファを対象とするようにした。

(defvar eval-buffer-orig nil)

(unless (functionp eval-buffer-orig)
  (setq eval-buffer-orig (function eval-buffer)))

(defun eval-buffer (&optional buf)
  (interactive)
  (if (interactive-p)
      (funcall eval-buffer-orig (selected-buffer))
    (funcall eval-buffer-orig buf)))

;(eval-buffer (selected-buffer)) と書かれてるバッファでやると無限ループになる
;                                そんなときは C-g すべし(コメントにしとけば問題なし)

単にすげ替えてるだけだけど、

  • これを書いたバッファが複数回 eval-buffer されたときのことも一応考えといた
  • インタラクティブに呼ばれたときのことも一応考えといた

こういうの書くのはおもしろい。