vim has been around for years and accumulated a lot of legacy code. Projects like neovim have emerged to remove the clutter and extend vim with a modern approach. vis is a similar attempt written from the scratch to provide a vim-like experience without legacy baggage. It is under active development at the time of writing.
The stated goal of the project is to stay simple and with 80% of vim’s features implemented in roughly 1% of the code.
- extends vim’s modal editing with built-in support for multiple cursors/selections (as an alternative to visual block mode)
- supports structural regular expression based command language from the Sam editor (written by Rob Pike)
- Unicode support including double width and combining characters
- handles large files (upto few GBs) of multiple formats
- binary ELF files
- syntax highlighting
- Lua API for in process extensions
- can be built with musl
- familiar keyboard shortcuts (for vim users) for operations, movement, text objects, marks, registers
Note that there is no mouse support at the time of writing.
vis is available on AUR. Packages for other distros are not available at the time of writing. To compile it from source on other distros, you need to install the following dependencies first:
- a C library (musl recommend)
- libcurses, preferably in the wide-character version
- lua >= 5.2 (optional)
- LPeg >= 0.12 (optional runtime dependency required for syntax highlighting)
$ git clone https://github.com/martanne/vis $ ./configure && make && sudo make install
vis has numerous options as you’ll expect. Run:
$ man vis
Usability: 3.5/5 (for advance users)