是否可以M-f4
先关闭框架,直到只剩下一个框架,然后再一起关闭 emacs?
我确实绑定了delete-frame
,M-f4
但我总是忘记 M-f4 不会关闭 emacs,而且我不想绑定,M-f4
因为kill-emacs
我一直用它M-f4
来关闭框架。
谢谢
答案1
此方法与 Cx Cc 绑定后,允许您以相同的方式关闭 emacs 框架,无论它是您打开的唯一窗口,还是“父”框架的“子”框架。如果您像我一样,在窗口环境中使用 emacs,那么您可能在任何时候都打开了许多框架。好吧,记住执行 Ctrl-x 5 0 来处理子框架,并记住执行 Cx Cx 来关闭主框架(如果您不小心,这样做会带走所有子框架)是一件很麻烦的事。这是我的解决方案:一个适用于所有情况(即使在 emacs -nw 会话中)的智能关闭框架操作。
(defun intelligent-close ()
"quit a frame the same way no matter what kind of frame you are on"
(interactive)
(if (eq (car (visible-frame-list)) (selected-frame))
;;for parent/master frame...
(if (> (length (visible-frame-list)) 1)
;;close a parent with children present
(delete-frame (selected-frame))
;;close a parent with no children present
(save-buffers-kill-emacs))
;;close a child frame
(delete-frame (selected-frame))))