Now that I have a 24″ widescreen monitor at work, I have a lot of horizontal space at my disposal. One of the nice things about this is that I can split my Emacs window down the middle with C-x 3 and have one pretty nice-size buffer on the left and another on the right. This is nice when working with two files and it’s also a pretty nice setup if I keep a file on one side and a shell buffer on the other. Normally, I don’t use Emacs shell buffers much, because I never really got accustomed to the paradigm and I end up losing some of the nice key bindings and tab completions that I have set up for bash. But with my recent work, which is Firefox extension development, I am frequently restarting the browser from the shell (thanks, Mozilla!) and so it’s kind of nice to have the shell very handy right there in Emacs.
This all got me to thinking that it would be cool to try using GNU screen with a vertical split, except that it quickly became apparent that classic GNU screen only does horizontal splits. Well, until you patch it at least:
I just applied this patch to screen-4.0.3 and built screen on my PowerBook. If you are using screen to connect to an already running screen process, then you’ll need to restart that screen process. Once you fire up the new version of screen and look at the help screen, you’ll see a new command called “vert_split” assigned to V (capital V).
Incidentally, for some strange reason, all the GNU mirrors have screen-4.0.2.tar.gz as the latest version, but it seems that there is a screen-4.0.3.tar.gz but I could only find it at ftp://ftp.uni-erlangen.de/pub/utilities/screen/screen-4.0.3.tar.gz
Incidentally #2, what is called a “vertical split” by this GNU screen patch and by me in this blog post (namely, that the line that splits is a vertical line, resulting in two regions side by side) is actually called a “horizontal split” by Emacs (the command which performs the aforementioned split is called
split-window-horizontally). While this is not unreasonable, since “horizontal” was presumably meant to refer to the fact that the resulting regions are horizontally adjacent to each to other, it’s confusing and annoying that the terminology differs from program to program. Sigh.