Open Buffers in new Frames instead in new Windows?

Discussion of programming Lisps using Emacs, including SLIME and other tools
Post Reply
Posts: 25
Joined: Fri May 02, 2014 6:46 am

Open Buffers in new Frames instead in new Windows?

Post by porky11 » Thu Dec 18, 2014 3:13 am

When Emacs automatically opens new windows (for example SLIME, when compiling a function from file), they appear in the same frame (X-window).
How do I change this behavior to open everything, that will be opened in a new Emacs-window by default, in a new frame?

Posts: 226
Joined: Fri Aug 06, 2010 6:34 am
Location: Germany

Re: Open Buffers in new Frames instead in new Windows?

Post by edgar-rft » Fri Dec 19, 2014 12:45 am

AFAIK there is no built-in way to "open everything automatically in a new frame", and even if you write such a function yourself, all the internal buffer-related organisation stuff is designed to work with one single Emacs frame.

Emacs was (and still is) primarily designed to run in a text terminal. The "frame" functionality originally was added to enable Emacs to work via a network connection in the text terminal of a different computer (called "mainframe" in the 1980s). When GUIs started to become popular in the 1990s the frame functionality was extended to work with multiple GUI windows. Because the frame functionality in the 1980s originally was considered a "very special" use-case there is no really good support for working with multiple frames in Emacs until today.

For example there is only one global Emacs buffer-list for all frames together and no built-in functions for "display THIS buffer always in THAT frame". With multiple frames you must do everything yourself, and this example is still one of the easiest.

I tried this once but had to give up rather quickly. But this was more than ten years ago and maybe somebody else has a better idea?

Nontheless ... happy Lisp hacking :D

- edgar

P.S.: In most cases when an Emacs buffer pops up, there is a key that makes the buffer disappear. In most Emacs buffers this is "q" for quit. In case of doubt read the documentation of the related Emacs mode or move the text cursor into the buffer and type "C-h b" to show the key bindings.

Post Reply