martanne/vis
FreeA vi-like editor based on Plan 9's structural regular expressions
About martanne/vis
Vis is a modern, legacy-free, and efficient text editor that combines the strengths of vi(m) with Plan 9's sam editor. It extends vi's modal editing with built-in support for multiple cursors and selections, and integrates sam's structural regular expression-based command language for powerful text manipulation. The editor features decent Unicode support, handles arbitrary files including large, binary, or single-line ones, and provides efficient syntax highlighting using Parsing Expression Grammars (PEG) expressed in Lua via LPeg. Its core is written in clean, modern C code, and it offers a Lua API for in-process extensions. Clipboard handling, digraph input, and a fuzzy file open dialog are delegated to independent utilities. Vis focuses on efficient text management and aims for an elegant design over bug-for-bug compatibility with vi(m).
Key Features
Pros & Cons
- Combines powerful features from both vi(m) and sam editors
- Multiple cursors make complex text changes efficient
- Structural regular expressions enable advanced pattern-based editing
- Lua-based syntax highlighting is expressive and extensible
- Lightweight and suitable for low-resource systems
- Clean codebase encourages experimentation and contributions
- Handles very large files and unusual line endings gracefully
- Not bug-for-bug compatible with vi(m), may require adjustment
- Smaller ecosystem and community compared to mainstream editors
- Some features (e.g., GUI, client-server) are still planned or incomplete
- Limited out-of-the-box plugin availability due to Lua-only extension API