vis README

The project's README from github.com/martanne/vis. As one markdown file: README.md.

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:

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:

How to help?

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

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).

vis (martanne/vis)

Searching Database…

5.1K ·GitHub
这是什么?Vis 是一个现代的、类似 vi(m) 的模态文本编辑器,将 vi 的编辑风格与 sam 的结构化正则表达式命令语言相结合,并原生支持多光标/多选区和 Unicode。
它是像 vim 那样的终端编辑器,还是别的什么?它是一个基于终端(curses)的模态文本编辑器,设计理念与 vim 和 sam 相近,不是 GUI 应用。
怎么构建并安装它?确保满足构建依赖,然后运行 `./configure && make && sudo make install`,或使用发行版提供的软件包。
构建它需要装些什么?你需要 C99 编译器和 POSIX.1-2008 环境;建议安装 curses,Lua 5.2+/LPeg 0.12+ 可选(用于语法高亮),TRE 可选(用于更省内存的正则搜索)。
哪些功能它刻意永远不会加?项目明确排除了标签页/多窗口、文件浏览器、压缩包/网络/加密/压缩支持、GUI、VimL、从右到左的文字、ex 模式、vimgrep、内置拼写检查器以及编译期特性开关。
这个编辑器是给谁用的?它面向希望获得轻量、可改造、无历史包袱的编辑器核心(用干净的 C 编写)的 vi(m)/sam 用户,适合资源受限的环境。
什么是结构化正则表达式?它在这里为什么重要?这是 sam 的命令语言概念(借鉴自 Plan 9),通过基于正则的结构而非基于行的 ex 命令来选中和操作文本;Vis 用它取代了 vim 的 ex 模式。
语法高亮是怎么实现的?语法高亮使用解析表达式文法(Parsing Expression Grammar)实现,通过 LPeg 库用 Lua 编写,而不是硬编码在 C 里。
可以用插件或脚本扩展 Vis 吗?可以,它提供用于进程内扩展的 Lua API,让你无需修改 C 核心就能开发插件和进行定制。
Vis 自己处理剪贴板和模糊打开文件吗?不,剪贴板处理、双合字母(digraph)支持和模糊打开文件对话框都交给独立的外部工具完成,而不是内置在编辑器里。
What are similar projects?kakoune, bat, neovim, micro, edit, oni, radare2, vim-pathogen
Creator
martanne
Size
6.7 MB
Stars
5.1K
Age
11y
Commits · 90 Days