如何关闭emacsclient中所有打开的框架



我有很多帧总是在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) ) ) ) )

我有一种感觉,循环杀死缓冲区可以做得更优雅——请提出改进建议!

最新更新