Better block navigation via keyboard, through jumping and same-level movement

I find that in medium long documents, just moving the cursor around with arrow keys takes forever and is inexact. This is because you have to traverse every subtree just to go down to a sibling on the same level.

I propose two features to help with this:

  1. Add tree-aware movement keybinds. lispy is a premium example of this in emacs world. Four keybinds would be enough: move to previous/next sibling (on same bullet level), and move up/down tree (go to parent or child). Binding this to h/j/k/l in the “selection mode” would be an amazing UX. i.e. h: go to parent, j: go to next sibling (down), k: go to previous sibling (up), l: go to child (if exists)

  2. Add a keybind for “jump to block”. If anyone’s used ace-jump, avy, vimium, there’s a “hint” mode where you invoke a key, the screen displays unique 2-3 letter tags next to every element of concern, and you type the tag to have your cursor/mouse jump there.

Having this would allow for instant jumping to the block you want.

Might be a good idea for a plugin

Do you have a plugin contributor’s guide?

@hkgnp might have more experience since he developed multiple plugins. I am not sure if there is a specific doc for the API.