Vim compatibility

Reference

Vim compatibility

See which Vim-style editing behaviors Red supports and where its defaults or command language intentionally differ.

Supported editing model

AreaRed behavior
ModesNormal, Insert, Visual, Visual Line, Visual Block, and Command
MotionsBasic, word, line, paragraph, sentence, find/till, screen-line, matching-bracket, and structural motions
OperatorsDelete, change, and yank with supported motions and text objects
Text objectsWords, sentences, paragraphs, delimiters, quotes, calls, functions, classes, and comments
RepeatCounts, dot-repeat, macro recording and playback, undo branches, and jump lists
SelectionsCharacter, line, block, mouse, and multi-cursor editing with Unicode grapheme boundaries
SearchForward and backward search, history, substitution ranges, flags, and confirmation
WindowsSplit navigation, movement, resizing, balancing, zoom, and docked-pane focus

Important differences

  • Search and substitution use Rust regular-expression syntax rather than Vim's regex dialect.
  • Red implements a documented Ex subset and doesn't run Vimscript.
  • Ctrl-e opens the file tree, and gW toggles wrapping.
  • Interactive named text-register selection such as "a isn't implemented, though named registers work for macros.
  • A confirmed substitute is one undoable transaction but doesn't become a dot-repeat recipe.
  • Shell commands are non-interactive. :read !, :write !, and Normal-mode filter operators aren't supported.

Look up exact behavior

The versioned compatibility matrix records supported behavior, intentional differences, and items not yet supported.

Open the complete compatibility matrix