Häufig werden meine Fenster automatisch geteilt, bis ich willkürlich feststelle, dass der aktuelle Frame nicht über genügend Platz für alle verfügt. In diesem Fall lösche ich manuell ein Fenster, erstelle einen Rahmen und wechsle zu diesem gelöschten Fenster. Wie kann ich eine Elisp-Funktion schreiben, die dies tut?
Ich habe es versucht:
(defun pop-window-into-frame ()
(interactive)
(delete-window)
(make-frame-command)
(switch-to-prev-buffer))
Aber aus irgendeinem Grund tut dies nicht das, was ich denke, dass es sollte.
Dieser Befehl sowie die folgenden Befehle, die nichts bewirken, wenn sich das ausgewählte Fenster allein in seinem Rahmen befindet, sind in der Bibliothek verfügbar
frame-cmds.el
.quelle
(select-frame-set-input-focus fr)
am Ende hat funktioniert.select-frame-set-input-focus
. In MS Windows beispielsweise erhält es den Fokus, so dass dies nicht erforderlich ist. Die Befehlsbeschreibung besagt auch nicht, dass der Rahmen fokussiert wird. Wenn dies gewünscht wird, kann ein anderer Befehl erstellt werden, der dies aufruft und dann den Rahmen fokussiert.