Multi-Block Selection
Select multiple blocks at once and perform batch operations: delete, indent, or dedent all selected blocks in one step.
Selecting blocks
Extend the selection with Shift+Up and Shift+Down from the current cursor position. The selection is always a contiguous range.
Select up
Shift+Up
Shift+Up
Shift+Up
Select down
Shift+Down
Shift+Down
Shift+Down
All selected blocks are visually highlighted.
Resetting selection
Any regular movement key (j/k, arrows, page up/down) collapses the selection back to a single block cursor.
Batch operations
With multiple blocks selected:
Delete
dd
Deletes all selected blocks
Indent
Tab
Indents all selected blocks under previous sibling
Dedent
Shift+Tab
Dedents all selected blocks to parent level
Delete
All blocks in the selection range are removed. The API call uses batch-actions to delete them in a single request.
Indent / Dedent
Each block in the selection is indented (or dedented) individually, preserving relative order. All moves are sent as a batch API call.
Undo
Batch operations create a single undo entry. Pressing undo (u in Vim, Ctrl+/ in Emacs, Ctrl+Z in VSCode) reverts the entire batch operation in one step — all deleted blocks are restored, or all indent/dedent moves are reverted.
Limitations
Selection is always a contiguous range (no non-contiguous multi-select like Cmd+Click in Roam web)
Selection does not span across linked refs sections
Entering insert mode resets the selection
Selection works only in Normal mode
Last updated
Was this helpful?