Support `org_do_promote` and `org_do_demote` in visual mode
Does this feature exist in Emacs orgmode core?
N/A
Orgmode link
No response
Feature value
I often need to promote and demote many elements at the same time, for example:
A group of headings:
* Heading 1
** SubHeading 1
** SubSubHeading 1 <-- heading to demote
** SubSubheding 2 <-- heading to demote
The content of a heading (following the case shown in https://github.com/nvim-orgmode/orgmode/issues/859)
* Heading 1
****** SubHeading 1
- Line 1 <-- content to promote
- Subline 2 <-- content to promote
- Line 2 <-- content to promote
The natural way for me is to select all the content in visual mode and use >> or << but it falls back to the default nvim indentation change and adds the spaces:
* Heading 1
** SubHeading 1
** SubSubHeading 1
** SubSubheding 2
* Heading 1
****** SubHeading 1
- Line 1
- Subline 2
- Line 2
Additional context
No response
@kristijanhusak I have actually a question about an issue related to this feature in a more conceptual manner: There are a couple of commands, which would be very useful in another mode than normal mode. In visual mode for example I would like to be able to add links to a selected text where a selected text gets the link description after inserting the link. When I looked at the codebase I hesitated to implement this, because the way, commands are hooked to the configuration seems to bind them very tight to normal mode. Is this true or do I just have a misunderstanding of the code? If I am correct, do you have plans to change that? There are a couple of other things in different modes I would find useful, like org-meta-return in insert mode.
@lyz-code Sorry for kind of derailing your issue. I would actually be quite happy to see your proposed feature implemented.
@seflue It's not that hard to add support for more modes. I added your suggestion in https://github.com/nvim-orgmode/orgmode/commit/0ef840ab9d9204b8b487f49f7428eb9c8ec2e5d2 since I believe it's useful.
For this one is trickier because of the possible shifts between the same selected region.