Here is what I take to be your goal:
- The ability to focus on a particular chunk of text while getting the rest of it out of your way,
- The ability to move big chunks of text around quickly.
This solution uses only out-of-the-box Emacs functionality:
org-mode
- narrowing
- split windows
- indirect buffers
First of all, if you write your document in org-mode
(or any mode that makes use of Emacs' outline
facilities), you'll be able to structure your document with headings, sub-headings, etc., and then hide or show the bodies of those elements. For prose, you may find it helpful to be very elemental: a header for a chapter, a sub-header for a section, a sub-sub-header for a subsection, all the way down to a sub-sub-...-header for each individual paragraph.
Second, even though org-mode
will allow you to hide the bodies of your headers and focus only on the body in front of you, it will leave the section headers on the screen. You may or may not find that distracting. If you do, you can narrow
the buffer just to that header (making all of the rest of the headers disappear temporarily from view) and then widen
again when you want to see the other text again.
Third, to get an easy outline view and the ability to move text around quickly, you can use a combination of split windows and indirect buffers. Make your Emacs frame wide enough to accommodate two windows (see this post for frame/window terminology). Do M-x split-window-horizontally
to get two windows side-by-side in your frame. In the window that has your document, do M-x clone-indirect-buffer
.
Now you have two linked copies of the same document in two different buffers. Put them in your two windows. Although they will both contain identical text, you can make them look different in the two windows.
One very useful way to use this facility is to have a main editing window in which you actually enter and edit your prose, and use the other window as your outline view: hide the bodies to show only the headers in a given section/subsection/whatever to give yourself an overview of the document's structure. You can then move chunks around quickly -- if you're using org-mode
, M-<up>
and M-<down>
run org-metaup
and org-metadown
, respectively, which, in this context, will move subtrees (a header and everything below it) up or down in the document.