Vi-like editing with the Xi core, written in pure Rust
ViXi is written with the idea that Vi's mode switching and keystroke remapping features can be managed in a separate library and dropped into either the Xi core library or into any Xi frontend.
The strict separation of concerns implicit in this design is intended to avoid a lot of the difficulties found in extending and maintaining the Vim and Neovim codebases.
By convention, generic type names follow this pattern:
Kis a keystroke, implementingCopyandOrd.Tis an arbitrary type, typically stored as a value in a map.Opis an arbitrary operation type (enums fromop.rs).
- Decide on an interface between ViXi and a ViXi object's owner.
- Implement MVP operations for Normal, Insert, and Op-pending.