Expand description
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 keybindingsRe-exports§
pub use modes::VIM_MODULE;pub use modes::VimMode;pub use providers::VimDefaultModeProvider;pub use providers::VimModuleProviderExt;pub use session_state::PendingCharOp;pub use session_state::VimSessionState;pub use ids::CHANGE;pub use ids::DELETE;pub use ids::OperatorId;pub use ids::YANK;pub use operators::ChangeCommand;pub use operators::ChangeOperator;pub use operators::DeleteCommand;pub use operators::DeleteOperator;pub use operators::Operator;pub use operators::OperatorContext;pub use operators::OperatorError;pub use operators::Range;pub use operators::YankCommand;pub use operators::YankOperator;pub use operators::operator_commands;pub use fallback::VimFallbackHandler;pub use vim_lookup_policy::VimLookupPolicy;pub use commands::ChangeLine;pub use commands::ChangeToEndOfLine;pub use commands::EnterCommandLineMode;pub use commands::EnterInsertEndOfLine;pub use commands::EnterInsertFirstNonBlank;pub use commands::EnterInsertMode;pub use commands::EnterInsertModeAppend;pub use commands::EnterReplaceMode;pub use commands::EnterSearchBackward;pub use commands::EnterSearchForward;pub use commands::EnterWindowMode;pub use commands::ExecuteFindChar;pub use commands::ExitCommandLineMode;pub use commands::ExitToNormal;pub use commands::OpenLineAbove;pub use commands::OpenLineBelow;pub use commands::ReplaceBackspace;pub use resolvers::VimCaseResolver;pub use resolvers::VimChangeResolver;pub use resolvers::VimCommandLineResolver;pub use resolvers::VimDeleteResolver;pub use resolvers::VimInsertResolver;pub use resolvers::VimNormalResolver;pub use resolvers::VimReplaceResolver;pub use resolvers::VimVisualResolver;pub use resolvers::VimYankResolver;pub use visual::ChangeSelection;pub use visual::DedentSelection;pub use visual::DeleteSelection;pub use visual::EnterVisualBlockMode;pub use visual::EnterVisualLineMode;pub use visual::EnterVisualMode;pub use visual::ExitVisualMode;pub use visual::IndentSelection;pub use visual::LowercaseSelection;pub use visual::ReselectLast;pub use visual::SwapAnchor;pub use visual::ToggleCaseSelection;pub use visual::ToggleVisualBlock;pub use visual::ToggleVisualChar;pub use visual::ToggleVisualLine;pub use visual::UppercaseSelection;pub use visual::YankSelection;pub use visual::visual_commands;pub use visual::visual_entry_commands;pub use visual::visual_exit_commands;pub use visual::visual_operator_commands;pub use visual::visual_selection_commands;
Modules§
- annotation
- Vim annotation module.
- bindings
- Vim keybindings.
- commands
- Vim-specific commands.
- fallback
- Vim fallback handler for character insertion.
- ids
- Command and operator ID constants for the vim module.
- macros
- Macro recording and playback support (Epic #465 Phase 8D).
- modes
- Vim mode definitions.
- operators
- Vim operators - delete, yank, change, case transformation.
- providers
- Default mode provider for the Vim module.
- resolvers
- Vim mode key resolvers.
- session_
state - Vim-specific per-session state.
- vim_
lookup_ policy - Vim-style lookup policy.
- visual
- Visual mode commands - entry, exit, selection manipulation, and operators.
Structs§
- VimModule
- Vim policy module.