/** * Vim Mode - AGI CLI Style * * Vim-style editing support for the terminal input. * Toggle with /vim command or Ctrl+[ to escape. * * Supported modes: * - Normal: Navigation and text manipulation * - Insert: Text input mode * - Visual: Selection mode (basic) * * Basic Vim commands: * - h/j/k/l: Left/Down/Up/Right * - w/b: Word forward/backward * - 0/$: Line start/end * - i/a: Insert before/after cursor * - I/A: Insert at line start/end * - o/O: Open line below/above * - x: Delete character * - dd: Delete line * - yy: Yank line * - p: Paste * - u: Undo * - Escape: Exit to normal mode */ export type VimMode = 'normal' | 'insert' | 'visual'; export interface VimState { mode: VimMode; register: string; count: number; pendingCommand: string; lastCommand: string; marks: Map; } export interface VimKeyResult { handled: boolean; newMode?: VimMode; cursorDelta?: number; textChange?: { type: 'insert' | 'delete' | 'replace'; text?: string; start?: number; end?: number; }; action?: 'yank' | 'paste' | 'undo'; } /** * Create initial vim state */ export declare function createVimState(): VimState; export declare function isVimEnabled(): boolean; export declare function setVimEnabled(enabled: boolean): void; export declare function toggleVimMode(): boolean; /** * Get mode indicator for display */ export declare function getVimModeIndicator(state: VimState): string; /** * Process a key in vim mode */ export declare function processVimKey(key: string, state: VimState, buffer: string, cursor: number): VimKeyResult; /** * Format vim help for display */ export declare function formatVimHelp(): string; //# sourceMappingURL=vimMode.d.ts.map