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.
In order to build vis you will need a C99 compiler, a POSIX.1-2008 compatible environment as well as:
- curses (recommended)
- Lua >= 5.2 (optional)
- LPeg >= 0.12 (optional runtime dependency required for syntax highlighting)
- TRE (optional for more memory efficient regex search)
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