Этот метод, связанный с 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))))
http://www.dotemacs.de/dotfiles/BenjaminRutt.emacs.html