Vim policy module.
This module provides Vim-style behavior for reovim:
- Keybindings: Standard Vim keys (hjkl, operators, modes)
- Operators: Vim operators (d, y, c) - delete, yank, change
- Resolvers: Mode-specific key interpretation (counts, registers)
- Visual mode: Entry, exit, manipulation, operators
- Policy: Vim lookup behavior (wait for longer sequences)
Architecture
This is a POLICY module - it defines HOW the editor behaves. The kernel and drivers provide the mechanisms (WHAT can be done).
┌─────────────────────────────────────────────────────────┐
│ VIM POLICY MODULE (this module) POLICY │
│ → Vim keybindings (hjkl, dd, etc.) │
│ → Vim operators (d, y, c with motions) │
│ → Vim resolvers (count/register handling) │
│ → Visual mode commands (selection operations) │
│ → Vim behavior (wait for longer sequences) │
├─────────────────────────────────────────────────────────┤
│ MECHANISM MODULES CAPABILITIES │
│ editor/, keymap/, motions/ │
│ → "What operations are possible" │
└─────────────────────────────────────────────────────────┘
Example
use reovim_module_vim::VimModule;
let module = VimModule::new();
let bindings = module.keybindings();
// Returns ~180 Vim keybindings