emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Make org-paste-subtree more predictable and useful


From: Philipp Kiefer
Subject: Re: Make org-paste-subtree more predictable and useful
Date: Wed, 18 Jan 2023 16:41:52 +0100
User-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.6.1

Thanks for addressing my concern, Ihor.

So I can force same-level yank by navigating to the beginning of the current headline before calling org-paste-subtree, I see. However, I still do not see a way to force it to paste one level below the current headline, i. e. to add the trees on the clipboard as child-subtrees or the current heading.

My best bet currently is probably to create a blank child heading, add some text (there seems to be a glitch turning the blank heading into an empty line when pasting with point on the blank dummy heading when it has no text), go back to the beginning of the line, then paste the subtrees at the level of the dummy heading, navigate back to the dummy heading and delete it. I'd really rather not have to do all that to achieve my simple goal of pasting subtrees at child level.

As for the claim that the current procedure "makes sure that the subtree remains an independent subtree and does not swallow low level entries.", either I don't understand it or it isn't true. If I have a level 2 heading below which is a level 5 heading and I paste subtrees with point on the level 2 heading, the level 5 heading is subsumed under the last subtree yanked from the clipboard in all cases.

Best,

Philipp

On 18.01.2023 09:04, Ihor Radchenko wrote:
Philipp Kiefer <phil.kiefer@gmail.com> writes:

Unfortunately, org-paste-subtree currently attempts to "modify the level of
the subtree to make sure the tree fits in nicely at the yank position"
[from Org Manual].
...
My suggestion would be to make a fundamental change to how the command
works, prioritizing definite A) or B) type results over the current vague
"the tree fits in nicely" approach. IMHO the default should be to yank at
the same level as the focused heading. Then, if the C-u 0 numeric prefix
(which currently produces an error message) were used to yank at one level
below that (as subheadings of the focused heading), the functionality of
the other numeric prefixes to set the yank level could be preserved.
AFAIU, `org-paste-subtree' already does what you want for the most part.
See the function docstring:

    Paste the clipboard as a subtree, with modification of headline level.
    
    The entire subtree is promoted or demoted in order to match a new headline
    level.
    
    If the cursor is at the beginning of a headline, the same level as
    that headline is used to paste the tree.
    
    If not, the new level is derived from the *visible* headings
    before and after the insertion point, and taken to be the inferior headline
    level of the two.  So if the previous visible heading is level 3 and the
    next is level 4 (or vice versa), level 4 will be used for insertion.
    This makes sure that the subtree remains an independent subtree and does
    not swallow low level entries.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]