Vis 的目标是成为一个现代的、无遗留问题的、简单而高效的编辑器,结合了 vi(m) 和 sam 的优点。
它通过对多个光标/选择的内置支持扩展了 vi 的模式编辑,并将其与 sam 基于结构正则表达式的命令语言相结合。
它是一个通用编辑器,具有良好的 Unicode 支持,可以处理任意文件,包括大型、二进制或单行文件。
使用Parsing Expression Grammars提供了高效的语法高亮,可以方便地使用Lua以LPeg的形式表达。
编辑器核心是用合理数量的干净(您的情况可能会有所不同)、现代且无遗留的 C 代码编写的,使其能够在资源有限的环境中运行。该实现应该易于破解并鼓励实验。还有一个用于进程内扩展的 Lua API。
Vis 力求简单,专注于其核心任务:高效的文本管理。剪贴板和有向图处理以及模糊文件打开对话框均由独立实用程序提供。现有计划使用客户端/服务器架构,将窗口管理委托给您的窗口系统或最喜欢的终端多路复用器。
其目的不是与 vi(m) 逐个错误地兼容。反而,
我们的目标是基于优雅的设计和简洁的实现提供更强大的编辑功能。
为了构建 vis,您需要一个 C99 编译器、一个 POSIX.1-2008 兼容环境以及:
假设满足这些依赖关系,则执行:
$ ./configure && make && sudo make install
默认情况下, configure
脚本将尝试使用pkg-config(1)
自动检测对 Lua 的支持。请参阅configure --help
以获取受支持选项的列表。您还可以手动调整生成的config.mk
文件。
或者简单地使用发行版提供的软件包之一。
最终用户文档可以在vis(1)
手册页和 Wiki 中找到。请阅读常见问题解答以了解常见问题。了解分别与sam(1)
和vim(1)
相比的一些差异。
还提供 C API 和 Lua API 文档。
一些不会实现的功能:
#ifdef
混乱贡献的方式有很多,以下是一些想法:
:help
输出查看开发者概述以开始使用,并随时在 libera 上的#vis-editor
IRC 频道中提问(通过浏览器加入)。