09/07/27 21:58:46 WPYnMlEA0
>>453
ちょっと頑張ってみた
(in-package "editor")
(defparameter *apropos-original-definition* #'ed::apropos)
(defun apropos (string &optional print-key pred)
"指定した正規表現に一致するシンボルを表示します"
(interactive "sApropos(Regexp): \np")
(macrolet ((with-rename-buffer ((name tempname) &body body)
(let ((b (gensym)))
`(let ((,b (find-buffer ,name)))
(unwind-protect
(progn
(if ,b (rename-buffer ,tempname ,b))
,@body)
(if ,b (rename-buffer ,name ,b)))))))
(with-rename-buffer ("*Help*" " *Apropos Temp*")
(with-rename-buffer ("*Apropos*" "*Help*")
(funcall *apropos-original-definition* string print-key pred)
(let ((buf (find-buffer "*Help*")))
(rename-buffer "*Apropos*" buf)
(lisp-mode))))))