#[derive(Debug, Clone)]
pub enum Command {
Insert(char),
Type(String),
CursorToStartOfLine,
CursorToEndOfLine,
CursorLeft(usize),
CursorRight(usize),
Delete,
Backspace,
Transpose,
DeleteStartOfLineToCursor,
DeleteWordLeadingToCursor,
PasteFromYank,
Undo,
DeleteToEndOfLine,
CursorToPreviousWord,
CapitalizeCurrentWord,
DeleteWord,
CursorToNextWord,
LowerCaseNextWord,
UpperCaseNextWord,
TransposeWords,
}
#[derive(Debug, Clone)]
pub(crate) enum ViMode {
Command,
Insert,
}
#[derive(Debug, Clone)]
pub(crate) enum Movement {
ToEndOfLine,
WordOrTokenLeft,
NonBlankWordLeft,
WordOrTokenRight,
NonBlankWordRight,
EndOfCurrentWord,
EndOfCurrentNonBlankWord,
NextOccurrenceOfChar(char),
PreviousOccurrenceOfChar(char),
CharLeft,
CharRight,
BeforeNextOccurrenceOfChar(char),
AfterPreviousOccurrenceOfChar(char),
}