About martanne/vis
martanne/vis is an open-source project on GitHub, mainly written in C. A vi-like editor based on Plan 9's structural regular expressions It currently holds 4,973 stars and 291 forks with 157 open issues, and was last pushed on 2026-10-02 (repository created 2014-11-15).
Project Overview
Git Homed tracks it on the Today's Trending board, currently at rank #94 with 27 new stars today.
GitHub Repository Details
README
Vis - Combining Modal Editing with Structural Regular Expressions
Vis aims to be a modern, legacy-free, simple yet efficient editor, combining the strengths of both vi(m) and sam.
It extends vi's modal editing with built-in support for multiple cursors/selections and combines it with sam's structural regular expression based command language.
A universal editor, it has decent Unicode support and should cope with arbitrary files, including large, binary or single-line ones.
Efficient syntax highlighting is provided using Parsing Expression Grammars, which can be conveniently expressed using Lua in the form of LPeg.
The editor core is written in a reasonable amount of clean (your mileage may vary), modern and legacy-free C code, enabling it to run in resource-constrained environments. The implementation should be easy to hack on and encourages experimentation. There is also a Lua API for in-process extensions.
Vis strives to be simple and focuses on its core task: efficient text management. Clipboard and digraph handling as well as a fuzzy file open dialog are all provided by independent utilities. There exist plans to use a client/server architecture, delegating window management to your windowing system or favorite terminal multiplexer.
The intention is not to be bug-for-bug compatible with vi(m). Instead, we aim to provide more powerful editing features based on an elegant design and clean implementation.
Build instructions ------------------
In order to build vis you will need a C99 compiler, a POSIX.1-2008 compatible environment as well as:
(optional runtime dependency required for syntax highlighting)- TRE (optional for more memory efficient regex search)
$ ./configure && make && sudo make install
By default the configure script will try to auto detect support for
Lua using pkg-config(1). See configure --help for a list of supported
options. You can also manually tweak the generated config.mk file.
Or simply use one of the distribution provided packages.
Documentation -------------
End user documentation can be found in the
vis(1) manual page
and the Wiki. Read the
FAQ for common questions.
Learn about some differences compared to
sam(1) and
vim(1)),
respectively.
C API as well as Lua API documentation is also available.
Non Goals ---------
Some features which will not be implemented:
- tabs / multiple workspaces / advanced window management
- file and directory browser
- support for file archives (tar, zip, ...)
- support for network protocols (ftp, http, ssh ...)
- encryption
- compression
- GUIs (neither x11, motif, gtk, win32 ...) although the codebase
- VimL
- right-to-left text
- ex mode, we have more elegant structural regexp
- diff mode
- vimgrep
- internal spell checker
- lots of compile time configurable features /
#ifdefmess
There are plenty of ways to contribute, below are a few ideas:
- Artwork
- Color Themes
- Homepage?
- Documentation
- Manual Pages
- Improve
:helpoutput - Lua
- API Documentation
- Unit Tests
- Plugin Development
- API Design
- Testing Infrastructure
- Distribution Packaging
- Core Editor Design
#vis-editor
IRC channel on libera (join via your browser).
