LogoLumide

Vim Emulation Mode

Lumide includes a built-in Vim modal editing engine.


Enabling Vim Mode#

  1. Open Settings (Cmd+, / Ctrl+,).
  2. Search for Vim Mode.
  3. Toggle editor.vim_mode.enabled.
  4. Or run Vim: Toggle Vim Mode from the Command Palette (Cmd + Shift + P / Ctrl + Shift + P or Cmd + Shift + A).

When enabled, a status chip appears in the bottom status bar showing the current mode (NORMAL, INSERT, VISUAL, REPLACE).


The Core Modes#

ModeEntry KeyCursor ShapeDescription
Normal Escape or Ctrl + [ Block Navigation, operators, and counts.
Insert i, a, o, I, A, O Bar Text insertion. Retains LSP completions and auto-pairs.
Visual v Highlighted block Character-wise range selection.
Visual Line V Line highlight Line-wise selection.
Visual Block Ctrl + V Column blocks Multi-line rectangular block selection.
Replace R Underline Overwrite characters without shifting following text.
Command : Prompt Ex commands and regex replacement.

Command Grammar: [count] [operator] [motion]#

Common Operators#

  • d: Delete (cut) into register.
  • c: Change (delete and switch to Insert mode).
  • y: Yank (copy) into register.
  • > / <: Indent or outdent lines.
  • =: Reformat code via active language server.

Text Objects (Use with i inner or a around)#

  • iw, aw: Word / surrounding word.
  • i", a": Double-quoted text.
  • i(, a(: Parenthesized block.
  • i{, a{: Curly brace block.
  • it, at: Tag block (HTML/XML).

Ex Commands#

Press : in Normal mode:

  • :w: Save file.
  • :q: Close current tab.
  • :wq or :x: Save and close.
  • :%s/find/replace/g: Replace all matches across file.
  • :g/pattern/d: Delete all lines matching pattern.
  • /query: Search forward; n next, N previous.

Configuration (~/.vimrc)#

Lumide loads key mappings and options from ~/.vimrc (or editor.vim_mode.configuration_path):

let mapleader = " "
set number
set relativenumber
set ignorecase
set smartcase

nnoremap <leader>w :w<CR>
nnoremap <leader>q :q<CR>
inoremap jk <Esc>

Settings#

Under Settings -> Editor -> Vim:

  • Enable Vim (editor.vim_mode.enabled): bool (default: false).
  • Status Indicator Style (editor.vim_mode.status_indicator_style): disabled, vim_string, simple_text (default), or capsule_chip.
  • Clipboard Mode (editor.vim_mode.clipboard): none (default), unnamed (primary selection), or unnamedplus (system clipboard).
  • Relative Line Numbers (editor.vim_mode.relative_line_numbers): Automatically switches to relative numbers in Normal mode.
  • Search Ignore Case (editor.vim_mode.search.ignore_case): true (default).
  • Search Smart Case (editor.vim_mode.search.smart_case): true (default).

Next Steps#