Skip to content

feat(keys): word-end, whole-row selection and marking without the toolbar - #133

Open
sebastianst wants to merge 6 commits into
plannotator:mainfrom
sebastianst:seb/block-keys
Open

sebastianst wants to merge 6 commits into
plannotator:mainfrom
sebastianst:seb/block-keys

Conversation

@sebastianst

Copy link
Copy Markdown

Fewer keystrokes to select and mark text, closer to vim.

  • a and d on a block: mark the selected block directly, without a selection first. A document action bound to the same key wins, so older configs keep working.
  • a, c, d and y during a selection: act right away, without Enter first. Enter still opens the toolbar.
  • e: moves to the next word's end.
  • V: selects whole rows.
  • Repeated marks: the same mark on the same text adds nothing and says so.
  • Word motions: count screen columns and treat any whitespace as a break, so wide characters and ideographic spaces work.
  • Esc from a block comment: returns to the block instead of leaving a toolbar behind.

These new mark keys ignore a plain binding answering with Ctrl held, so Ctrl+D during a selection doesn't mark a delete. That check becomes redundant if #132 lands. This also touches text_key next to #131, so whichever lands second needs a small rebase.

🤖 Co-created with Claude Opus 5.5

sebastianst and others added 6 commits November 4, 2026 16:10
`e` moves to a word's last character and `V` selects whole rows. `a` and
`d` now mark the selected block without going through a selection.

Leaving a block comment no longer leaves a toolbar behind: block `c` made
a pending selection for the box and Esc kept it, which is why `a` and `d`
only appeared after a cancelled comment.

`a` and `d` on a block sit outside the keymap's conflict check, so a config
that gave those keys to a document action keeps loading and keeps its key.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
w, b and e indexed a row by character while the cursor is in screen columns, so they landed short on rows with wide characters. w and b also missed a word after a non-ASCII space such as U+3000.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Pressing a or d twice added two identical notes, and both were sent to the agent. The status now says the mark is already saved.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Enter still opens the toolbar, and a motion bound to one of these keys still moves. A key that does nothing during a mouse drag no longer collapses the selection, and a selection that never moved no longer leaves its visual hint in the footer.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Like a, c and d, the copy key now finishes a selection still being extended. The text stays selected, as it does when copying from the toolbar.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A plain binding answers with Ctrl held, which would make Ctrl+A mark a block and Ctrl+D mark a selection instead of paging. These new surfaces ignore such a press, while a mark bound to a Ctrl key still fires.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant