#[non_exhaustive]pub enum MotionKind {
CharLeft,
CharRight,
LineDown,
LineUp,
FirstNonBlankDown,
FirstNonBlankUp,
WordForward,
BigWordForward,
WordBackward,
BigWordBackward,
WordEnd,
BigWordEnd,
}Expand description
Cursor motion identity carried by the host keymap path.
Phase 3a introduces this enum so the hjkl-vim keymap can name motions
without depending on engine internals. The host converts a MotionKind to
the appropriate Editor::apply_motion call.
Designed for extensibility: Phases 3b–3g will add further variants
(word motions, line-boundary motions, jump motions, scroll motions, …)
without breaking any existing match arms — callers must use .. or
add the new arms when they bump the hjkl-vim minor version.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
CharLeft
h / <Backspace> — move the cursor one character to the left.
Clamps at column 0 (no line-wrap), matching vim’s normal-mode h.
CharRight
l / <Space> — move the cursor one character to the right.
Clamps at the last character of the line (no line-wrap), matching
vim’s normal-mode l.
LineDown
j — move the cursor one line down, restoring the sticky column.
LineUp
k — move the cursor one line up, restoring the sticky column.
FirstNonBlankDown
+ / <CR> (not yet bound) — move down one line and land on the
first non-blank character. Sets the sticky column.
FirstNonBlankUp
- — move up one line and land on the first non-blank character.
Sets the sticky column.
WordForward
w — move the cursor forward to the start of the next small word.
Counts repeat the motion; wraps across lines matching vim’s w.
BigWordForward
W — move the cursor forward to the start of the next BIG word
(whitespace-delimited). Counts repeat; wraps across lines.
WordBackward
b — move the cursor backward to the start of the current or previous
small word. Counts repeat; wraps across lines matching vim’s b.
BigWordBackward
B — move the cursor backward to the start of the current or previous
BIG word (whitespace-delimited). Counts repeat; wraps across lines.
WordEnd
e — move the cursor forward to the end of the current or next small
word. Counts repeat; wraps across lines matching vim’s e.
BigWordEnd
E — move the cursor forward to the end of the current or next BIG
word (whitespace-delimited). Counts repeat; wraps across lines.
Trait Implementations§
Source§impl Clone for MotionKind
impl Clone for MotionKind
Source§fn clone(&self) -> MotionKind
fn clone(&self) -> MotionKind
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for MotionKind
impl Debug for MotionKind
Source§impl Hash for MotionKind
impl Hash for MotionKind
Source§impl PartialEq for MotionKind
impl PartialEq for MotionKind
Source§fn eq(&self, other: &MotionKind) -> bool
fn eq(&self, other: &MotionKind) -> bool
self and other values to be equal, and is used by ==.