我有很多帧总是在emacs中打开。就像我使用emacsclient(守护进程)并且几乎从不重新启动我的计算机一样,这些框架永远不会关闭。我可以用C-x k
关闭一个,但如何关闭所有打开的框架?
关闭所有帧只是退出,不是吗?
如果要关闭除一帧外的所有帧,则可以使用delete-other-frames
和关键帧序列C-x 5 1。
这似乎可以接受。它会询问您终止列表上的某个缓冲区是否有未保存的更改。
(defun close-all-other-buffers-and-frames ()
"Destroy all frames except this one, kill all buffers, display `*scratch*'."
(interactive)
(set-buffer "*scratch*")
(delete-other-frames)
(let ((l (buffer-list)) b)
(while l
(setq b (car l)
l (cdr l) )
(and (buffer-file-name b)
(kill-buffer b) ) ) ) )
我有一种感觉,循环杀死缓冲区可以做得更优雅——请提出改进建议!