Use vis as a lightweight, keyboard-driven terminal editor on resource-constrained systems like embedded Linux or remote servers with limited RAM.
Edit code in multiple places at once using vis's built-in multi-cursor support without needing a plugin.
Write Lua scripts to add custom syntax highlighting or editor behavior without modifying C source code.
Use structural regular expressions to select and transform text in expressive ways that go beyond standard find-and-replace.
Available in most Linux package managers (apt, pacman, etc.), compile from source only if you need the latest version or are on an unusual system.
Vis is a terminal-based text editor written in C. It takes inspiration from two older editors: vi (the classic modal editor that keyboard-driven developers know well) and sam (a research editor from Bell Labs that introduced a different way of describing text ranges). Vis borrows modal editing from vi, meaning you switch between a navigation mode and a typing mode rather than always inserting text directly, and it borrows sam's approach to finding and transforming text using what are called structural regular expressions. Structural regular expressions let you describe not just individual matches but the structure around them, which makes it possible to select and edit text in more expressive ways than a standard find-and-replace. Vis also supports multiple cursors at the same time, so you can edit several places in a file simultaneously. Syntax highlighting in vis is powered by Lua scripts using a grammar library called LPeg. This means the highlighting rules are written in a scripting language rather than baked into the editor's binary, and you can extend or replace them. There is also a Lua API for writing plugins that run inside the editor process itself. The editor is intentionally small. The README lists a long set of things it will not add: no built-in file browser, no tabs, no GUI, no network protocol support, no encryption, and no compatibility with Vim's scripting language. Clipboard handling and fuzzy file opening are expected to come from separate tools. The goal is a focused core that handles text editing well and can run on resource-constrained systems. Building it requires a C99 compiler and a POSIX-compatible environment, plus a few libraries. Most Linux distributions package it directly, so you may be able to install it without compiling from source. Documentation is available in a manual page and a project wiki.
← martanne on gitmyhub — every repo by this author, as a profile.
Verify against the repo before relying on details.