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.
A universal editor, it has decent Unicode support and should cope with arbitrary files, including large, binary or single-line ones.
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 encourage 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.
- 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
configure --help for a list of supported
options. You can also manually tweak the generated
Or simply use one of the distribution provided packages.
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 ...)
- GUIs (neither x11, motif, gtk, win32 ...) although the codebase should make it easy to add them
- right-to-left text
- ex mode, we have more elegant structural regexp
- diff mode
- internal spell checker
- lots of compile time configurable features /
How to help?
There are plenty of ways to contribute, below are a few ideas:
- Manual Pages
- Testing Infrastructure
- Distribution Packaging
- Core Editor Design
Checkout the Developer Overview
to get started and do not hesitate to ask question in the
IRC channel on freenode.