martanne/vis

▲ 27 stars today★ 4,973⑂ 291

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

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

Repository martanne/vis · default branch master · size 6920 KB · watchers 96 · source: GitHub REST API and repository README

README

Vis - Combining Modal Editing with Structural Regular Expressions

Development discussion builds.sr.ht status Coverity Scan Build Status codecov Documentation Status #vis-editor on libera

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.

vis demo

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) Assuming these dependencies are met, execute:

$ ./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:

should make it easy to add them How to help? ------------

There are plenty of ways to contribute, below are a few ideas:

and Examples Checkout the Developer Overview to get started and do not hesitate to ask question in the #vis-editor IRC channel on libera (join via your browser).

GitHub Stars & Activity

4,973Stars
291Forks
157Open issues
CLanguage

GitHub Popularity

GitHub stars4,973
Forks291
Open issues157
Primary languageC
LicenseNOASSERTION
Stars gained today27
Created2014-11-15
Last pushed2026-10-02

Trending History

Daily boardrank #94 · ▲ 27 stars

Related GitHub Projects

1

colbymchenry / codegraph

C★ 72,912⑂ 4,681▲ 163 stars
→
2

JustVugg / colibri

C★ 39,041⑂ 4,272▲ 223 stars
→
3

duixcom / Duix-Avatar

C★ 15,636⑂ 2,663▲ 30 stars
→
4

matz / spinel

C★ 2,141⑂ 134▲ 62 stars
→
5

obra / superpowers

Shell★ 294,380⑂ 26,314▲ 561 stars
→
6

mattpocock / skills

Shell★ 274,616⑂ 23,055▲ 955 stars
→
7

affaan-m / ECC

JavaScript★ 271,132⑂ 40,511▲ 572 stars
→
8

n8n-io / n8n

TypeScript★ 206,509⑂ 60,971▲ 100 stars
→

More Trending Repositories