Hi. This is a feature proposal -- if the consensus is that it would be
welcomed, I'm happy to code it. I just didn't want to take the time to write
it if there's no chance for it to be accepted upstream (since I don't want to
be maintaining my own personal branch of Org Mode).
It would be useful if `org-narrow-to-subtree' could optionally narrow to the
next subtree(s) up, rather than only to the subtree point is currently in. For
example, assume this text:
* This is the first level
Some text here.
** This is the second level
Some other text here.
*** This is the third level
By now we all know this song.
It is such a pretty song.
**** This is the fourth level
But do we have to sing it all day long?
This car trip is getting incong
***** This is the fifth level
ruously unrhymed.
Further assume that point is on the "c" of "car trip".
In the current Org Mode, if you type `C-x n s', it will narrow to the
fourth-level subtree (with the fifth level included in the narrowed buffer, of
course).
Since `org-narrow-to-subtree' takes no arguments at all right now, it's
conveniently ripe for improvement :-).
My proposal is for each raw prefix arg (each `C-u' prefix) to expand the
narrowing level outward/upward by one. So in the above situation:
- `C-u C-x n s' would narrow to the third-level subtree
- `C-u C-u C-x n s' would narrow to the second-level subtree
And so on.
If you offer too many `C-u's, such that the narrowing would be wider than the
current surrounding first-level subtree, then there are two possible ways we
could handle it:
1) Extra `C-u's are ignored -- just narrow to surrounding 1st-level subtree.
2) Throw an error.
I prefer (1), because it would be the more useful behavior, even though (2)
would be easier to implement (since `org-back-to-heading' already throws the
error). However, I'd welcome others' feedback on that question, or on any
other aspect of this proposal.
Best regards,
-Karl