martanne/vis logo

martanne/vis

Free

A vi-like editor based on Plan 9's structural regular expressions

FreeFree tier
Inputs: textOutputs: text
Type
Open Source

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

Combines vi(m) modal editing with sam's structural regular expression command language
Built-in support for multiple cursors and selections
Decent Unicode support and handles large, binary, or single-line files
Efficient syntax highlighting using Parsing Expression Grammars (LPeg) in Lua
Clean, modern C codebase designed for hackability and resource-constrained environments
Lua API for in-process extensions and customization
Clipboard, digraph, and fuzzy file open handled by independent utilities
Planned client/server architecture for flexible window management

Pros & Cons

Pros
  • 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
Cons
  • 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

Best For

Editing source code with advanced modal editing and multiple cursorsProcessing and manipulating large or binary text filesText transformation using structural regular expression operationsExtending editor functionality through Lua scriptsSystem administration and scripting tasks in terminal environments

FAQ

What is Vis?
Vis is a modern, legacy-free text editor that combines vi's modal editing with sam's structural regular expressions, offering features like multiple cursors, Unicode support, and Lua-extensible syntax highlighting.
What programming languages can I use for syntax highlighting?
Syntax highlighting is provided using Parsing Expression Grammars (PEG) expressed in Lua via the LPeg library.
Is Vis compatible with vim?
Vis is not intended to be bug-for-bug compatible with vi(m). It aims for a more powerful editing experience based on an elegant design, so there will be differences.
Can Vis handle large files?
Yes, Vis is designed to cope with arbitrary files, including large, binary, or single-line ones.
Is Vis extensible?
Yes, Vis provides a Lua API for in-process extensions, allowing you to customize and extend its functionality via Lua scripts.