Este método, quando ligado a C-x C-c, permite que você feche um quadro do emacs mesma maneira, seja a única janela que você abriu, ou se é um quadro "filho" de um quadro "pai". Se você é como eu, e usa o emacs em um ambiente de janelas, você provavelmente tem muitos quadros abertos em qualquer Tempo. Bem, é uma dor lembrar de fazer Ctrl-x 5 0 para descartar uma criança quadro, e para lembrar de fazer C-x C-x para fechar o quadro principal (e se você estiver não tenha cuidado, isso levará todos os frames das crianças com ele). este é a minha solução para isso: uma operação de quadro fechado inteligente que funciona em todos os casos (mesmo em uma sessão 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))))