Sorry I didn't see your question sooner.
This is precisely one of the reasons for library Zones (zones.el
).
When you narrow the buffer, each narrowing is added to a ring of narrowings, which includes the full (unnarrowed) buffer. The narrowings can be nested, but they need not be. They can be any regions at all.
You can cycle among the narrowings (using C-x n x x x...
). You can go directly to the Nth previous narrowing by using a numeric prefix arg; e.g., C-3 C-x n x
. Plain C-u
widens completely (same as C-x n w
or cycling to the unnarrowed ring entry). C-0
empties the ring.
The mode line tells you which narrowing (buffer restriction) is current.
You can even save the ring of current buffer restrictions persistently and restore it later. If you use library Bookmark+ then you can bookmark a ring of restrictions and then restore it later by jumping to the bookmark.
For more information, see Multiple Narrowings.
See also Narrow Indirect (library narrow-indirect.el
). It lets you easily create any number of indirect buffers that are clones of the main buffer and that are narrowed to particular portions of it.