Fix terminal input mode and cursor rendering
This commit is contained in:
@@ -95,16 +95,11 @@ selection entry, leader rails, tool commands, save/quit, and recoverability.
|
||||
|
||||
### Insert mode
|
||||
|
||||
Text-entry mode for ordinary typing. Insert mode preserves terminal text input
|
||||
and exposes a visible return path to Normal through a non-modifier command rail.
|
||||
|
||||
In Insert mode, `Space` enters a pending-space state instead of immediately
|
||||
committing ambiguity. If the next key is ordinary text, `mim` commits the literal
|
||||
space and the next character. If the user pauses after `Space`, `mim` opens the
|
||||
Insert rail. The canonical mobile path back to Normal is `Space` pause, then
|
||||
`n` for "normal". `Space` pause, then `Space` commits a literal space from the
|
||||
rail. Physical keyboards may use conventional direct keys such as Escape as
|
||||
aliases, but those aliases are optional accelerators, not required controls.
|
||||
Text-entry mode for ordinary typing. `mim` starts in Normal mode; Insert mode is
|
||||
entered explicitly with `i`, `a`, `o`, or another visible command. In Insert mode,
|
||||
`Space` commits a literal space immediately. Physical keyboards may use
|
||||
conventional direct keys such as Escape as aliases back to Normal, but those
|
||||
aliases are optional accelerators, not required controls.
|
||||
|
||||
### Select mode
|
||||
|
||||
@@ -128,10 +123,12 @@ small typed argument surface entered from a visible command.
|
||||
|
||||
## Leader keys and rails
|
||||
|
||||
`Space` is the primary leader. Pressing and pausing on Space opens the command
|
||||
rail. The rail shows mnemonic groups and available next keys. A command either
|
||||
executes after one key or enters a second-level group; common paths should not go
|
||||
deeper than two keys after the mode/leader.
|
||||
`Space` is the primary leader in Normal mode. In Insert mode, Space inserts a
|
||||
literal space immediately; terminals do not give `mim` reliable key-up/hold
|
||||
semantics, so hold-to-leader is intentionally not a v1 path. The rail shows
|
||||
mnemonic groups and available next keys. A command either executes after one key
|
||||
or enters a second-level group; common paths should not go deeper than two keys
|
||||
after the mode/leader.
|
||||
|
||||
`m` is the match/object prefix in Normal and Select modes. It is deliberately not
|
||||
Vim `%`: `%` remains a physical-keyboard alias where available, while `m` is the
|
||||
@@ -188,7 +185,7 @@ such as arrow keys, Home/End, PageUp/PageDown, Escape, or `%`.
|
||||
| `Space w` | write/save current buffer |
|
||||
| `Space q` | close/quit current surface, with dirty-buffer protection |
|
||||
| `Space ?` | show contextual help/command rail |
|
||||
| Insert `Space` pause, `n` | return from Insert to Normal without Esc/Ctrl/Alt |
|
||||
| Normal `i` / `a` / `o` | enter Insert explicitly; `mim` starts in Normal mode |
|
||||
|
||||
## Editing operations
|
||||
|
||||
@@ -398,7 +395,7 @@ Design-only and needing future implementation slices:
|
||||
- source-profile-backed format, organize-imports, code-action edit application;
|
||||
- format-on-save policy and one-shot save-without-format;
|
||||
- contextual rails for all prefixes listed in this document;
|
||||
- Insert pending-space rail, including `Space` pause then `n` to Normal.
|
||||
- explicit mobile-safe Normal/Insert transitions without required Esc/Ctrl/Alt.
|
||||
|
||||
Future slices should implement one vertical behavior at a time with replay or
|
||||
headless tests: for example, `m m` delimiter jump, `s i` indent selection,
|
||||
|
||||
Reference in New Issue
Block a user