我使用with-output-to-temp-buffer函数,将标准输出重定向到它,然后将其保存到文件中,切换回之前的缓冲区,最后删除临时缓冲区。
(require 'find-lisp)
(with-output-to-temp-buffer "*my output*"
(mapc 'print (find-lisp-find-files "~/project/clisp" "\\.lisp$"))
(setq prev-buffer (buffer-name))
(switch-to-buffer "*my output*")
(write-region nil nil "test")
(switch-to-buffer prev-buffer)
(kill-buffer "*my output*")
)
但是下面的错误发生了。我不知道为什么。
Debugger entered--Lisp error: (error "Selecting deleted buffer")
PS:有没有更优雅的方式在Elsip中实现这个操作(将标准输出重定向到文件)。谢谢。