Keystroke to move bullet lists up or down

Obsidian’s support for bullet lists makes it very useful as a basic task manager and outliner (especially with the Mindmap plugin). I have looked for a keystroke that enables me to move a bullet list or block of text up or down, but have not found one. It seems this would be a useful plugin, as it would enable items in bullet lists (e.g., tasks, outlines, etc.) to be moved up or down in the list by a keystroke, instead of “select the text + cut + paste.”

If this worked at the block level, then it could be used to easily reorder paragraphs as well. Thoughts?


Hi @timj,

I’ve been hacking around block-level moving with keystrokes - I really like it. It doesn’t consider individual list items but you can move lists around as one block.

Maybe this is two things anyways:

  1. Move bullet items
  2. Move blocks

Anyways, check out the demo here: [Looking for feedback] "Block-Swap" Plugin Prototype


Thanks, I had not seen that yet. It looks promising, at least for the block level. I agree that these seem to be two similar but essentially different functions (block move; bullet move).

Isn’t swap line up what you are looking for (for single lines)?

Almost. It works at the line level and for bullets at the same level of indent, it is sufficient. I am hoping for something that is context-aware so as to also move all sub-bullets embedded under the current bullet. For example, if this is the Markdown:

- this is bullet A
- this is bullet B
    - this is bullet B.1
    - this is bullet B.2
- this is bullet C

I would like to be able, with the cursor on bullet B, to move bullet B and all its sub-bullets (B.1 and B.2) either up (before A) or down (after C).

Note: if I select all the text of bullet B and the sub-bullets, the same “swap line up/down” keystroke works to move the selection. It’s more cumbersome, but gets the job done for now.


I think the Outliner plugin might offer block-level movement.

Edit: to clarify, this works in hierarchical lists, not hierarchical headers. It would be cool if it could be extended to headers.