Aşağıda, ilk gereksiniminizi karşılayan bir işlev (test edilmiş, ancak kapsamlı bir şekilde değil) bulunmaktadır: Bir çerçeveyi kapattığınızda , arabelleğin başka bir çerçevede de görünmesi AÇIK OLMADAN , geçerli arabelleği öldürür .
(defun kill-buffer-when-frame-delete-dwim (frame)
"Kill current buffer unless it's visible in another frame
besides current FRAME."
(unless (delq nil (mapcar #'(lambda (x)
(memq (current-buffer)
(mapcar #'window-buffer x)))
(mapcar #'window-list
(delq frame (frame-list)))))
(kill-buffer (current-buffer))))
(add-hook 'delete-frame-functions 'kill-buffer-when-frame-delete-dwim)
İkinci şarttan emin değilim:
- By birden fazla tampon çerçevede görüntülenen , sen çerçeve a) İki veya daha fazla pencere vardır demek, ve b) pencereleri farklı tamponlar kendilerine görüntülenmesini?
- By do şey , siz) bir ortalama çerçeveyi silmek ama yapmalıyım değil şimdiki tamponu, öldürmek veya b) gerçekten hiç bir şey yapın: çerçeveyi silmek veya geçerli tampon öldürmüyorsunuz?